As far as I see it the entire CanEnter function, as it stands, is completely pointless. The only thing it checks is if the old map is the same as the new map, then assert. This makes no sense, and I know of several times where this would be true. Either we need to check if the player is on a transport within the CanEnter, or it needs to be "removed". That being said, CanEnter would be required for, as an example, TBC flagged accounts in WoTLK. It would need to be rewritten obviously, but if you tried to take the boat from Stormwind to Borean Tundra in WoTLK with a TBC account, it would teleport you back to the dock and tell you that your account is not eligible to be in any WoTLK areas.