Virtualisation is not just for the datacentre; the technology is being used extensively in client computing, with uses ranging from complex workstation applications to the simplest DLLs.
A good example of this is application virtualisation, a label applied to products that insulate running programs from the underlying desktop. The idea behind application virtualisation is to eliminate many of the support-draining configuration problems that plague conventional desktop implementations. These products virtualise the interaction between a given program and supporting OS resources, like the file system and, in the case of Windows, the system registry database. All these products isolate applications from the OS image, but the approaches are quite varied.
At one end of the spectrum are products like Altiris Software Virtualisation Solution (SVS). Tools like SVS employ what might be called the "brute force" method: A simple filter driver is installed in the Windows file system code stack to intercept and redirect I/O calls from SVS-managed applications. When enabled in their respective "layers," an SVS-managed application appears to integrate seamlessly with the OS. In reality, every aspect of the application's OS interaction, from loading a DLL to accessing a registry key, is being redirected on the fly to a local cache file managed by SVS.
The advantage to this approach is that it fully isolates the OS from the application: Any changes made by the application - to the Registry, to its own files, to Windows - are in fact occurring solely within the SVS-managed cache file. Since no real changes are occurring, the underlying OS image remains untouched and the application can be "disabled" by simply clicking a button or by remotely disabling it from a supported management console. The downside to this approach is that it has trouble managing multiple versions of the same application; for example, Microsoft Office can sometimes trip up SVS by invoking the wrong version of a component when multiple versions are installed in parallel layers.
At the other extreme you have products like Softricity's SoftGrid, acquired by Microsoft in 2006 and soon to be integrated with the base Windows Server platform). SoftGrid provides a complete virtualisation environment: Applications are streamed to the client from a server share and then executed within a customised "sandbox" that completely isolates the code from the OS. The advantage to this approach is that it avoids many of the multiversion issues that plague SVS. However, the trade-off is a more complicated deployment process that requires administrators to create a custom installation image to optimize the code base for streaming.