Just a quick comment... in VMWare 2.x (both the betas, RC's and final 2.0 release they added some optimization options. Under VMWare -> Preferences, you can choose to "Optimize for virtual machine disk performance" or "Optimize for Mac OS application performance". By default, in the betas and RC's, the "Enable debugging checks" option is checked as it integrates to their crash reporter tool. You can get quite a bit of performance back by not checking "Enable debugging checks" and putting a bullet in "Optimize for Mac OS application performance".
By default, as well, if you use Fusion to boot your BootCamp copy of XP/Vista, it will choose to emulate two CPUs. A good performance option is to only allow it to have one virtual CPU. This means that of your two cores, only one is used by Fusion/Windows and the other is always available to OS X.
RAM is important as well. My initial Mac had 2Gb and I allocated 512Mb to XP Pro SP3. Later I upgraded to 4Gb and then gave XP 1Gb and it has performed much better.
Interestingly, I've found the network to be an issue too. If I boot up XP and log in to my domain at work, then hibernate XP, then go home and bring XP out of hibernate (but obviously in Fusion), it hangs on the network looking for the domain, my mapped home dir, etc. I've found the catch is to always log out of XP, then hibernate it. When I get home, I fire up Fusion and bring XP out of hibernate, then log in to my local system, not the domain and things are nice and snappy.