Been an issue since dawn of times (since Operation Flashpoint).
Suggested solution:
Implement new scripting commands to return and set precise object's world coordinates without any kind of manipulations in between. No placing points, no checks for surfaces underneath. Just raw world coordinates as is. Suggested names: getPosWorld, setPosWorld