When people hear the term "virtualization," they often assume that this is a technology for a datacenter working on consolidating servers. The benefits that virtualization offers for developers are often left out of the mix. Let me set you straight, developers have a lot to gain from virtualization.
Have you ever built an installer and had to test it on a "clean OS" over and over again? Without virtualization, you're typically left to testing and retesting your installer on a separate physical system. Coding an installer is a trial and error process, so when it bombs out on the first attempt, you make fixes, and then try again. You don't want to re-test the installer on a box that's already had a failed install. Who knows what was left behind? So you end up using Norton Ghost or some other imaging software to return the machine to a clean state so you can test the installer again.
For this scenario, virtualization comes to the rescue. Using Microsoft's Virtual PC 2007 (free) or VMware's Workstation ($189), you can eliminate the need for a test machine, and get back to a clean state in seconds.
Virtual PC lets you run a second full OS, with installed applications, in a window on your development box. You can test your installer in this "virtual machine." When you're done, you can undo the changes and be back to a clean pre-install OS. With Virtual PC you can quickly test against many OS versions, such as Windows Vista, Windows XP, Windows 2000, and so on.
Here’s another development scenario: Virtualization can help you save time and effort when you need to test multiple versions of an application, but the app won’t let you install different versions at the same time. The classic example is testing your application on Microsoft Internet Explorer (IE). If you're a Web developer, you probably want to test your site against Mozilla Firefox, Apple Safari, IE7, and IE6. You can't have IE7 and IE6 installed simultaneously, but you could have IE6 installed inside a virtual machine. You can then do the bulk of your testing with IE7 on your development box, and when you want to check IE6, you can just start a virtual machine on your development box, run IE6 in that window, and do your testing.