Not all software can be virtualized. Some examples include applications that require a device driver and 16-bit applications that need to run in shared memory space.
Some types of software such as anti-virus packages and applications that require heavy OS integration, such as Stardock’s WindowBlinds or TGTSoft’s StyleXP are difficult to virtualize.
Only file and registry-level compatibility issues between legacy applications and newer operating systems can be addressed by application virtualization. For example, applications that don’t manage the heap correctly will not execute on Windows Vista as they still allocate memory in the same way, regardless of whether they are virtualized or not. For this reason, specialist application compatibility fixes (shims) may still be needed, even if the application is virtualized.