What affects IMU (Inertial Measurement Unit) accuracy?
I have noticed some accellerometers and gyros to have a bit of a memory effect.

For example, you can place a accellerometer horizontal and null out the reading.  I will stay close to zero but of course still drift a little.  Now move it sideways and back again to the original position and the reading won't be zero anymore.  The stronger and more sudden the movement, the more it seems to change the zero offset.

It is this unpredictable drift in the zero value that messes up inertial navigation over a longer time.  Sometimes long is only a few seconds with MEMs gyros and accellerometers.

I did a sports head tracking device once, and even if you had the person hold still before starting a motion, the position would unusable after a couple of seconds.  Fortunately that was long enough, and we designed the algorithm to use things like accelleration and angular rate directly instead of relying much on their integrals.  This was with rather cheap MEMs units.