I also wrote a brief outline of natural logic seperations in MUDs to aid multithreading, but I'm at work right now and don't have it on me. When I get home, I'll be sure to post it.

Basically, no matter what kind of synchronization you do for multithreading, contention is expensive. Anything you can do to reduce contention is going to give you performance benefits - logic seperation being the most obvious reduction method, and geographic partitioning (as the link describes) being another powerful reduction method for MUDs.