You really need to go virtual. And yes, VS goes on the server.
This is not as bad as it may sound to some. You can install the virtual image and configure everything, including VS to your liking, and take a snapshot of the server. That way you dont have to re-configure all your custom VS settings and tools.
You can create as many different virtual images as you need (one for each customer if you are working for several customers) and you can take snapshots of the virtual machines and later discard all, if you need to clean up your workstation.
It is a good practice to delete your development environment often (i heard of teams that does it every week), and go back to a snapshot (you can automate this process in Powershell to happen every weekend) so that your dev environment will be as similar to your dev-test, integration-test, pre-prod and production environment as possible!
I have seen several questions asked here, where ppl cant understand some deployment "that worked fine on my development rig" doesnt work when pushed to production. Differences between environments are one of the most obvious causes of this!
What virtual environment to choose?
I have used Virtual PC/Server and can testify that they are slow. So i will strongly reccomend against those.
If you want a fast development platform you should install Windows Server 2008 on your PC, Convert your Windows 2008 server to a workstation and install HyperV. It is the new free virtualization tool from MS. The reason you need Win2k8 (or Win7 beta) is that the OS supports virtualization natively. That is also why it is so fast compared to the alternatives. It isnt even hard to set up, do a google and you will find plenty of guides on it.
Another also good option is VMware workstation. Not as fast as HyperV, but i have used that for years and it works like a charm. Not all versions are supported by MS though, so that might give you problems if you call MS support at some point.
I do not recommend using Jonas "SharePoint on Vista" helper for the above reasons: virtualization gives you the possibility to keep your dev. environment clean!
hth
Anders Rask