I've been working an issue for the past couple of days on OpenGL-ES2. I am using almost all standard OpenGL calls, but use GLKView to manage the rendering surface. I have noticed that I am getting a translation of .5 on top of my stuff that is coming from somewhere, but not my stuff. I put my eyepoint at the origin and am using identity shaders: passing the geometry to be displayed with no transformations at all.
I almost wonder if glkView is trying to hard to be my friend, and is tossing in a .5 translation so my scene is nicely centered in a normalized default bounding box. (And yes, the geometry is all original based as well).