We are building a MMOG. All the network code is custom and has taken quite a long time (about a year - part time w/2 developers) to write. We have only been using 3DGS for a couple of months and are VERY happy with the relative ease we've been able to leverage our network code with the engine.
Our server is totally custom, runs under UNIX and communicates with a MySQL backend to store the gamestate periodically. BUT - while the game is running, everything is actually running in memory on the server. We are relying on the fact the server will have 99.9% uptime and this will be ok ... time will tell.
Just about everything the client does is actually a request to the server and the server sends to all clients (that need to know) the actual actions taken. We had some predictive movement code in the server but haven't tried to tie this into 3DGS yet.
>>How do you use the level geometry?
Our map is bascially infinite in size. This is still new ... just figured it out in past week with help from Doug-Conitec. I'm sorry I have to use vague terms here but we haven't finalized the actual tiles so the size, number, etc. are all variables we can change very easily. Basically, we have a set number of actual distinct map tiles (.hmp's) that we put together in various combinations. As the player moves around, when they move enough tiles out from center (0,0,0) we shift the entire world back to center. The server knows what the entire world is and sends just the tiles the player needs. At some point beyond when it makes sense to have the "defined" world. We just use a plain, barren map tile. All buildings, etc. are prefabs we create based on where player is.
Our entire world is dynamic. When a player connects to the server, all the entities are sent from the server and the players world is built on the fly.
>> How to manage many users?
Probably the coolest thing our server has that is non-standard is what we call "surrogate" servers which is where we monitor the throughput of each client and dynamically turn clients into servers if they have the capacity which offloads our server from a LOT of bandwidth. We section off our map and attempt to match new clients with a surrogate server if one exists. Of course, the game design really affects how much this can be used.
---- Sorry, a lot of rambling there I know, but gotta run. Send me follow-ups if you want more info on specifc areas...