There are a few “known” hacks to determine if a program is running under a Virtual Machine, unfortunately none of these supported by Microsoft.
The most common one is the WMI query to find the motherboard manufacturer – if it is Microsoft, then, as of today at least, given that Microsoft don’t manufacture motherboards, is relatively reliable.
However, there’s a couple of other ones I found out about yesterday which I wasn’t aware of (similarly unsupported). Just to show I’m not biased also, they both also detect VMWare.
First up is Red Pill by Joanna Rutkowska which uses the SIDT processor instruction:
Secondly, there’s VmDetect which is a simple .Net utility.
Note: I haven’t tested these solutions and you’re entirely on your own for support if you choose to rely on these mechanism in any applications you write. Also, neither mention Virtual Server explicitly – just Virtual PC. However, I haven’t tested this whether either tool identifies Virtual Server.