Basically I have learned that watching Linux teaches you a lot. Applications seldom if ever peg the CPU identically at precisely the same time. That's pretty much impossible to do, considering you can't really split a process. You can multi thread it to run in semaphore and take advantage of CPU to run concurrent processes, but you don't see exactly the same performance.
So basically if you see an app that pegs both CPU at the same time, it's a good bet that the app is multithreaded but not necessarily SMP aware. So testing is the best course of action, but of course they won't take the time TO test , they want what the want.
If they ask for 2 CPU, give them one, and whatever memory they want, cut it by at least a third. Then give them their VM. Chances are they won't look for it. Then when the ask about where their missing resources is, you can push back and say.. "oops, I guess I missed that, well everyone needs to log off, then I can make the changes...". Chances are they are already using it, and they won't worry about it.
If they force the issue, then put a performance meter on it BEFORE you shut it off.. stall them. Ask them to run an app that they use or something that they would normally run daily, and log the performance. Then give them what they asked for and re-run the tests over time.
Then you now have pure bonafide test data to PROVE your case. So future requests will now have to PROVE they need the additional resource. Test data is pretty much the only way to prove it.
But just keep in mind there is a vast difference between multi threaded applicaitions and SMP (symetrical multi processor) apps. They are not the same. You can multi thread on one CPU no problem. Then my favorite quote is: "My VM runs at 100% all the time, when my XXX app is running".
Your response: "Good! That means it's working, that's outstanding news, thanks for the feedback!".
In reality you want to see 100% (not 24 hours a day) but when they are running it means they are using their resource, instead of wasting it. If they want to know why its good tell them, it's because on a physical box you won't reach the 100% threshold because there are too many other drivers, and background polling (for usb, serial, video, sound, etc..) on a native box that's not needed in a VM, it's a more pure environment.