This attitude has now flipped, and users are expected to have non=privileged accounts. Most of the old DOS-based programs that expected access to graphics hardware are gone, but there are still many Windows 9x programs that expect to store data under C:\Program Files\programname, or to store user preferences in the system registry. Some of these problems may be worked around by changing access controls, e.g. adding "user write" to C:\Program Files\programname\Data\, or to certain registry keys. Others may be more complex. Microsoft released a new tool, Standard User Analyzer, to help developers adapt. SUA is reminiscent of Filemon and Regmon from Sysinternals, or the Linux strace utilty, but it has some nice features like "noise" filtering, and logs API access as well as file and registry. However, it is not live - the target process must be stopped before the logs can be analyzed. On XP, it requires .NET 2.0 to be installed, and I was unable to run it successfully on XP as a limited user
I tried SUA on one (critical to me) application - PuTTY. PuTTY runs OK as a limited user on XP, so I had assumed it would run on Vista. However, it fails to connect. Regmon showed a winsock2 registry entry denied, which I addressed by changing the ACL. However, PuTTY would still not connect. SUA showed an access problem to \Device\NamedPipe, which is probably the critical issue. However, I don't have the skill or development tools to check this,
My personal recommendation, as for XP, is to run in standard (limited) mode unless you really need privilege - most current viruses and trojans simply won't run, but everyday tasks like Web browsing, email and office will. Switch to a privileged account, or use the "run as" feature, to install software or to run legacy programs that need more access.