If users cannot afford dedicated machines, it's possible to provide each user with a virtual machine, assuming that you have a very powerful server that can run a few virtual machines on the same hardware.
There are a number of virtual-machine technologies, both commercial and open source. Here are some of them:
The User-Mode Linux kernel gives you a virtual machine that may have different hardware and software virtual resources than the physical computer. Disk storage for the virtual machine is entirely contained inside a single file on the physical machine. You can assign your virtual machine only the hardware access you want it to have. With properly limited access, nothing you do on the virtual machine can change or damage your real computer or its software.
If you want to completely protect one user from another and yourself from your users, this is yet another alternative to the solutions suggested at the beginning of this chapter.
For more information, visit the home page of the project at http://user-mode-linux.sourceforge.net/.
VMWare technology allows you to run a few instances of the same or different operating systems on the same machine. This technology comes in both open source and commercial flavors. The open source version is at http://savannah.nongnu.org/projects/plex86/. The commercial version is at http://www.vmware.com/.
VMWare will allow you to run a separate OS for each of your clients on the same machine, assuming that you have enough hardware resources.
freeVSD (http://www.freevsd.org/) is an open source project that enables ISPs to securely partition their physical servers into many virtual servers, each capable of running popular hosting applications such as Apache, sendmail, and MySQL.
The S/390 IBM server is a great solution for huge ISPs, as it allows them to run hundreds of mod_perl servers while having only one box to maintain. The main drawback is its very high price. For more information, see http://www.s390.ibm.com/linux/vif/.