How about this implementation:
-When a user makes a change it gets sent to the server
-The Server updates its virtual World
-At a set time period, set by a <poll 1 minute> tag or whatever
each client query's they server for an update, which would be
smaller than the orginal world information. The client then
uses the update from the server to update its virtual world
-If a user's client doesn't query back, it is assumed that the user
disconnected
In this way, net traffic is reduced and the following things are
accomplished
-When the net gets faster worlds can be easily updated to the new speed
-Worlds can have dynamic features like waterfalls, or animals
-If you don't like the load on your server, you can reduce it by making
your world slower
-Nathan