In some cases, a new version may be unavailable or too expensive, and you need to run the old one.
In Vista, Microsoft introduced UAC (User Account Control), and virtualization. In this scheme, legacy 32-bit programs that do not use UAC will use filesystem and registry virtualization - they think that they are writing to the real registry system keys, and to C:\Program Files, but they are actually writing to HKEY_CURRENT_USER\Software\Classes\VirtualStore and %homepath%\AppData\Local\VirtualStore (e.g. C:\Users\username\AppData...). This avoids the need to tinker with access control for most legacy programs. Some that write to nonstandard locations may still need changes as per XP legacy programs, or may be run in XP Mode