The computer press is full of interest in "virtualization" these days. Before getting into the implications of virtualization for Web services, a little computing history is in order. In many ways, the history of the computer industry is also the history of virtualization.
As used in computing, virtualization refers to the creation of an abstract generalization of a computing resource to make the use of that resource independent of the actual underlying hardware. The very first example being languages like COBOL to substitute human readable source code for the details of CPU registers and machine operations.
Compiling source code to fit an abstract virtual machine instead of a specific CPU and operating system configuration came along next. The idea being that compiled programs would be portable and operating system specific interpreters could translate to the actual system. A famous early example was UCSD Pascal p-code most prominently used on Apple II systems. These days, Java byte-code interpreted by the Java Virtual Machine is ubiquitous.