1. A method implemented by a system, comprising: receiving information indicating that an installer is being launched for a first application program, wherein the system is executing a first operating system (OS) and the first application program is designed to operate on a second operating system that does not execute on the system; generating a virtualized installation environment, wherein the virtualized installation environment is configured to carry out the installation of the first application program by carrying out steps that include: generating an OS data structure utilized by the first application program, wherein the OS data structure is designed for the second operating system and is a system registry that is capable of being changed by a plurality of application programs, establishing first data that specifies changes made to the OS data structure by way of a virtualized installation of the first application program, wherein the first data is a first shadow registry storing initial registry changes for only the first application program, and creating a package that includes an installable version of the first application program, the first data, and dynamically linked libraries (DLL) associated with the first application program; and using the package, installing the first application program onto the system, wherein installing the first application program comprises: storing second data that specifies changes to the OS data structure made when installing the first application program, wherein the second data is modifiable by the first application program when executed but the first data is not modifiable by the first application program when executed.