The command for starting a program with affinity to a single core is "start /affinity 1 (executable name)".
As for what the actual problem is, it's really a bug in *all* the games that have this problem. They use the instruction "RDTSC" to read the timestamp counter on the current CPU and use that to figure out how much time has passed in order to throttle the graphics display. When you are on a multicore system, the RDTSC instruction returns the timestamp counter for the *current* core, which may not be the same as the counter for the other core due to all sorts of things happening, usually involving clock throttling from Cool'n'Quiet or something else similar. So, when the game reads the counter first from one core then another, the calculations it makes to determine how much time has gone by get messed up, so you see strange artifacts on the screen.
To whoever said Cool'n'Quiet wasn't for reducing your electrical bill, you're nuts. It reduces the energy used by the CPU (which results in the CPU running cooler). Enabling Cool'n'Quiet on my system drops the energy usage by about 100W, as measured by the UPS, so it's about the same as turning off a couple of lights in energy savings. Well written games should never require you to have this turned off, but I agree that many do.