As the final word? (since this is my specialty):
PhysX started out its life as Novodex, a software-only physics API very much like Havok. PPU support was later added to it and the general physics abilities expanded, and this is what became PhysX. PhysX is an equally capable software and hardware physics system, there's no absolute penalty for running it in software besides the fact that CPU physics is slower than GPU/PPU physics due to the difference in FP computing power. There's nothing to emulate, there's a software path and a hardware path, developers can choose to take either one*.
The only real reason that you don't see PhysX used as much as Havok is largely because of developer support and the other tools Havok offers. Havok has great developer support and also has animation and AI behavioral tools that developers like to use at the same time. Havok has also done a better job of positioning themselves in the market, and has been a big player since very early in to this decade.
* I should probably note that not every last physics calculation is done in hardware. There are certain calculations regardless that are run on the CPU because it's faster than sending it to a PPU/GPU. All of the computationally intensive calculations however are sent to the GPU/PPU when such support is enabled