I've got a simplistic idea on how this could be done and wanted to share it.
Let's assume we have 3 environments (games) Game A, B and C. They are similar in some concepts and vastly different in others.
Let's assume we have one user, Joe, who wants to play in all three environments.
Joe signs up for Game A and plays it. All information is stored within Game A as normal.
When Joe logs out of Game A. He is given a url that will contain all his information.
Joe now wants to play Game B. He has the option of entering in his url or registering as normal.
Once given a url Game B will request Joe's information from Game A.
Game A will response with pair values, like so:
UserName=JoeGame A will also record the fact that Game B requested information. This will come into play when Joe goes back to playing Game A.
Game B will take the values it can use and create/update Joe's account within it's game environment. Such as UserName, Score and Money. (Maybe this game does not have characters)
Joe is done playing Game B. As he logs out he is given the opportunity to get a new URL or he can update Game A.
If Joe decided to update Game A, Game B will send a request to Game A letting it know the url it can find an update at.
Game A will go to that url and process all of Joe's information, updating it's stats as needed.
One of the advantages of this system is that if Site A were to disappear or be unavailable, Joe still retains all the information from Game B. It's even possible for him to save information from Game A, if the site does disappear, if Game B has it saved.
For those who are worried about malicious use of the system, it would be quite easy to code the update process to only allow updates from certain game sites. If you did not want to see updates from Game C, you could exclude that site from your updates by looking at the request url.
Alternatively someone could offer a service where "trusted" games can exchange information.
The user information could be in an XML document, but I have found that the ease with which you can build key pair values is easier to build and search then XML documents. I know the advantages, I personally don't think the advantages out weigh the disadvantages in this case.
This is a stab in the dark any thoughts and comments are appreciated.