Can someone please explain the multi-core issue?

I don't understand why it's more of a programming issue now.  Doesn't the OS just see it as another CPU and use it accordingly?  As long as the app or game or whatever it is is multi-threaded, what else does it have to do?

This seems to be more of an operating system level thing.