From the application point of view multi-core CPU is visible as two different processing units, so the only difference between using two threaded application on dual-core and dual-cpu is caused by the architecture of the cpu itself and the data flow in the application (of course dual-core will be slower due to smaller computing power per core).
Don't compare processor usage on different systems. Compare execution times instead. In your case I'd say something is wrong with your program or system settings and Windows executes your application on a single core (thus 50% instead of 100%).
Bookmarks