I'm not entirely sure how Vista divides work load or if running 4 intensive tasks would automatically be moved to 4 individual cores. However you could always open the task manager and manually set the affinity of your programs so each one has its own core.
The CPU usage is a round-robin affair. If one intensive program is running, it takes up one core and the others are left to manage less intensive or time-consuming tasks. Each time the same program is loaded up, its never always on the same core because it keeps on hopping between the available ones. Some programs are coded for multi-threading and simultaneous code execution, so they use all the avialable cores, albeit at a lower usage because the work is now divided.
However, if you run four programs one after the other, they are dealt with by a separate core. With the i7's, one can load up to eight programs simultaneously, and each one would reside on its own core, even if its a virtual one.