Application virtualization
Application virtualization encapsulates an application and all of its components into a package that is easy to deploy and manage. Using virtualization allows you to execute the application as if it was locally installed when it is not. Normally when you install an application it will register DLL files, create registry keys, and copy files into your operating system. This modifies your operating system and you will always run the risk of overwriting something already installed and breaking an existing application. By virtualizing the application, you will never install anything on the client, you will simply execute the application. There is also a virtualization layer hooking into the APIs of the application. When hooking the API for, let's say Open File, it is possible for the virtualization layer to present a virtual environment for the application, thus fooling the application into thinking it is already locally installed and therefore allowing it to execute.
The benefits of using application virtualization are many. Your operating system stays clean. By having clean machines, your clients will be more stable. A virtualized application is much easier to deploy, maintain, and retire than a natively installed one. With application virtualization, it is often possible to run two otherwise conflicting applications simultaneously on the same machine. Not using application virtualization makes it pretty much impossible to have Microsoft Office 2003 and Microsoft Office 2010 installed on the same client and run both at the same time.