If you run the same gcode file twice, is the error in position exactly the same, or similar-but-different? Is it Y or Z (as mentioned above)? Does it make a difference if you are actually cutting or "air-cutting" - i.e. above the work? How complex is the gcode file - a simple outline, for example, or a lot of small intricate moves like engraving? At the end of a cut, does the machine position display say that the tool is out of position or is the display correct but the tool not in the right place?

Need quite a lot more info to start diagnosis!