This method uses a framebuffer object for the render to texture:
-Enable the framebuffer object
-Disable the framebuffer object

I'm aware that framebuffer objects can render to textures using render targets (glFramebufferTexture2DEXT...()), but I didn't want to deal with making it a depth texture. In my implementation, the framebuffer object is just used to increase the size of the viewport meaningfully. Could this setup be the problem?

Incidentally, when is used glCopyTexImage2D(...) alone, everywhere appears to be in shadow.

In my shader, I hardcoded the shadow functions to avoid card to card problems, such as what to do with the edges outside the shadowmap (we already saw that's a problem earlier, Ren).

I will check to see if the matrices are somehow different between cards.