for cube mapping u have to send to ur shader the camera position and the model matrix(and not the modelviewmatrix) of ur object that u want to apply the cube mapping .
so in ur GL code u have to separete the viewing transformation from modeling transfromation .
the modeling transformation is when u want to rotate/translate ur 3d model into game world.
the viewing transformation is to transform the world so it appears as if it is being viewed from a certain position in our world. then in ur GL code u will do something like this
//setup viwepoint of the global world
//translate,rotate or glulookat (lets call it matrix V)
//roatate translate model (lets call it matrix M)
//draw ur model : here each vertex of ur model will be multiplied by V*M
so back to ur shader . as i said u need to send the camera positon and the model matrix of ur object and not the modelview matrix(if u supply the modelview matrix the reflection will remain fix even if ur model moves ( as explained b4))
the question is how u can get the model matrix to send it to ur shader.
here an example :
//Ex,Ey,Ez define ur camera position in ur shader
//position ur model
//here we will ask OpenGL to generate model matrix for us
glLoadIdentity();//back to identity matrix
glTranslatef(modelpos);//translate ur model
glRoatef(modelrot);//rotate ur model
glGetFloatv(GL_MODELVIEW_MATRIX,M);//M now contain the model
//matrix .this matrix must be sent to ur shader
glPopMatrix();//back to view matrix
here we asked OpenGL to generate our Model Matrix. u can always generate it manually ( check opengl red book appendix : modeling and transformations matrix)
hope this help