Right now, you select where you want to continue playing, your character is placed in the world and then you wait some time till your client gets all the information it needs to actually display your surroundings and let you walk and do stuff. With the recent login lag, this takes enough time for someone to break your brick wall, eat all your food, drink some tea, have an after-meal nap and then murder you before you assume control of your character.
The game should send the data first, get confirmation from the client that it has indeed received everything it needs, and then place the character in the world. If the spot where the character was supposed to appear gets blocked while the data is being transmitted, the game can wait 5-10 seconds, and if it fails again just return the player to the character selection menu (and give an error message, of course).
Teleportation has a similar problem, but it's not quite so intense. Still, it'd be really neat if a teleporting character was somewhere outside of the world while he's waiting for the target area's data.