The points that you guys are making in favor of the virtualization are not unreasonable but let me disagree.
First, to the point that several have made that "The deeper issue is even if they are prompted, the only way to let the app run is to virtualize. The compatibility mode you speak of cannot allow the old app unlimited access to the real parts of the system and hence must virtualize them."
I disagree. There are lots of cases when VISTA+UAC allow programs to write to the "real" registry and the "real" directories like \Program Files. In these cases, the UAC pops up and requires user to enter an admin-level password. There is absolutely no reason that Vista couldn't prompt users if a program tries to access these directories.
I assert that a more general fundamental flaw in VISTA UAC is that it doesn't have the ability for users to greenlight applications for admin access just like a firewall, though i understand that some people might disagree with this. Either way, I see no reason that instead of virtualization (or indeed PRIOR to defaulting to virtualization), VISTA shouldn't pop up a message asking user whether the program should be authorized to access the directories or else virtualized. I believe virtualization is a horrible last choice resort, and should be treated as such, and that it is not something that should be done silently behind the scenes.
The point was made "what's so bad about virtualization"..
As I explained in my original post, virtualization creates mirror shadow copies of files, hidden deep in a directory no user is ever going to find. The files are hidden from the user, where they will never be backed up or accessed. Instead the program thinks its modifying files in one directory and so does the user. When they user goes to look -- he/she may find files there with the names they expect, but guess what.. they aren't the files the user has actually been working with. If the user deletes these files from the real directory.. guess what, they aren't really deleted, since the program will find the invisible hidden files in the virtual store. If the program tries to delete or rename files, oops, they are working with the virtual hidden files, and so god help it if there are files with that name in the native directory. It's a total travesty in my opinion, and prone to some very confusing experiences and potential user data loss. This is not like notifying the user about using a page file, which is simply a performance issue, this is about causing serious confusion both to users and to the programs, which think they are working with one file when really they are working with another hidden one.