Just wanted to confirm this before I submit a bug report.
It looks like if a parent object is rotated on one axis and scaled unequally on the other two axes, the object’s children’s positions will shift when the game engine starts.
For example, an object rotated on the x-axis and scaled by [1, 2, 1] will exhibit the problem while and object rotated on the same axis but scaled by [2, 1, 1] or [1, 2, 2] will not.
Here’s a blend that demonstrates the issue. Just start the game engine and note how 3 of the 4 cubes shift positions.
scale_shift_bug.blend (81.1 KB)
EDIT: Looks like this bug has been around for awhile: https://developer.blender.org/T33512
Hopefully it’ll get fixed soon.