In some cases virtualization is a great tool for testing. For example, we have gone through several domain upgrades and it was useful to create a DC in a VM, isolate it, and test the upgrade. It is also perfect for testing high-level app/service upgrades such as SQL, or IIS.
Also, at some sites, we have secondary DCs, and the only function is a quick recover in case of FSMO failure. (I sooooo dislike restoring AD from backup). In this case, the secondary DC is taking up 10GB hd space and 512MB RAM on a ESX35 sever at the site. Why waste hardware on this function?
I also have VMs of different desktop OSes to test how group policies play with Windows 2000, XP SP2, XP SP3, and Vista.
I hope this helps....