You may want to look at splitting the "main" server into smaller "zone" servers (or whatever you'd like to call them). Looking at Everquest, they have the following (very basic):

Patch Server (Patching Clients to current version)
Login/Chat Server (Authentication and basic Chat)
World Server (Messages, and zone transfers)
Zone Server (Main Server [for zone])

This method is very scalable becuase each zone runs the "game" but provides the user with different content, while the World Server allows players to jump from zone to zone, and send messages to anyone on the "world" server list.

I know thats a very basic description of how Everquest works, but just a thought..