Actually, I'm not going to fix it in that fashion at all. The problem wasn't that it was teleporting to a freshwater lake, the problem was that it was teleporting city to city. Basically, when the game is trying to find a spot to "bump" a unit, it weights all the tiles on the map, and then picks the lowest weighted tile to move it to. As part of the weighting process, tiles that are in a different area* than tile the unit is currently in are given 3x the weighting, making it very unlikely they'll be chosen.
The problem here is that because the unit was in a city, the area it was in was considered to be land. Therefore every water tile was considered to be in a different area and was given the 3x weighting. So it ended up finding the closest available city and sticking your ship there.
* Two tiles are considered to be part of the same "area", in game terms, if you can travel from one to the other without leaving the current domain. So if it's two land tiles, then you need to be able to travel between them via land, if two water, then via water. A land and water tile are never part of the same area
Bh