AFAIK, it's rather common for all multithreaded apps. I don't know of any that can fully utilize each core. For example, I recall awhile back someone compared a C2D to a similar-speed C2Q with a multithreaded app, and saw about a 35% increase in performing the task...and wondered why it wasn't at least a 75% increase.
It primarily depends on the amount of effort the developer puts into it. Plus, I think there are differing results between AMD and Intel procs, and most devs put more effort toward Intel results. I think another dependency is the speed of your RAM.