When I became an MCT (Microsoft Certified Trainer) I started using Virtual PC's as part of the classroom demonstrations and labs. Until then I'd used them on occasion, but they never struck me as very useful. In preparing for the classes and presenting in user groups and conferences I learned to appreciate how nice it is to isolate a demo or test environment from my "real" work environment.
Last year I got an MSDN subscription, which gave me a variety of operating system installation media, which I'm allowed to use for development purposes. I built a VPC image for Windows XP SP2 and for Windows Server 2003 R2, registered each one, and used Windows Update to bring them to current patch levels. Once that was done I shut down the VPC and copied the image files to separate directories (leaving the original files in place.
Now, whenever an issue comes up requiring a particular version of SQL Server (be that SQL 2000, SQL 2005 or SQL 2008, and specific to whatever patch level I need, I can copy the "backup" image files to the primary folder, start up the VPC image I need, then install whatever version of SQL Server I need to get some work done.
Today, for example. A while back I had a job on a production server that was no longer needed (per the business user), so I dropped it. Today I found out it was needed, but the backup from when that job was dropped was from SQL 2005 SP1. (I know, I should have scripted it before I dropped it.) In any event, by using my virtual machine I was able to install SQL 2005 SP1 and restore the msdb database. I was then able to retrieve the job and it's back and everyone's happy.
It's also a great environment for testing the various CTP releases of SQL Server 2008 and Visual Studio 2008. Instead of uninstalling previous versions and cleaning up registry entries, just copy over a fresh VPC image and I'm off to the races.