My primary development box is a Windows 2003 Server installation running on a VMWare virtual machine that runs off a 500 GB external (USB 2.0) hard drive. It works fine. Some notes:
- It works with write caching turned on or off. Better with it on.
- Whether you have write caching on or off, always make sure to properly shut down (or suspend) the VM, and always use the eject hardware feature to stop the drive before you disconnect the hard disk.
- When you eject/stop the drive, it can take several minutes to finish writing all the data to the external drive. Don't force it or rush it, or you'll have a corrupted VM.
My host machine is a laptop running XP Pro, so it's protected from power outages. I also have a UPS that I plug the external drive into in case the power flickers.
If you do end up with a corrupted VM (which has happened rarely), as a worst case all you need to do is create a new VM and attach the same drives to it. It's always come up running fine for me.
Edit:
Your backup strategy should be chosen independently of whether or not it's on an external hard disk. Even if you have them locally, VMs can become corrupted or you can lose data. Choose how often you need to back them up and do it. However, you should fully stop the VM and shut it down before doing the backup (don't just suspend it).