As Underfire and Asquared point out there are a number of errors or rather inaccuracies that lead to "drift"
You'd imagine that some of them would/should cancel each other out but it never seems to work that way - they always tend to be additative....................