1. You can start out with freeGLUT to get off the ground. It hides the OS specific stuff like creation a window and GL context, user input.
2. There is Nehe but it is ancient and just teaches GL 1.1 and few things like VBO.
There is the Wiki for GL 3 stuff http://www.opengl.org/wiki/Tutorials
So you are saying you are rendering to a texture (FBO) that doesn't have a depth buffer, but it appears that it is using the depth buffer from the window? That should not be possible. If it is working, there is no guarantee that it will work on other hardware.
It sounds like you aren't a OpenGL user.
GL doesn't have a view matrix and it doesn't have a world matrix. GL only has a modelview matrix.
GL transforms vertices by the modelview matrix to get eye space vertices. It also transform normals by the inverse transpose of the modelview matrix to get eye space normal vectors. Lighting is computed in eye space. In order to deal with non uniform scale, you can glEnable(GL_NORMALIZE). If you only have a uniform scale, you can glEnable(GL_RESCALE) which is "faster" than GL_NORMALIZE.
Of course, all of the above is relevant to the year 2002 and before. It's time to move to the world of shaders.
Any card that does GL 3.0 has a driver that does GL 3.3 (on Windows anyway) so why not use that?
Doom3 can run on GL 1.1 apparently http://liamm.com/tech/voodoo-2-sli-doom-3-kit
All id engines are GL 1.1 + a load and tons of extensions.