I have an NVidia GeForce 8400M GS.  I have recently implemented an application that uses FBOs extensively.  The application is available here: http://www.mediafire.com/download.php?z2xkwyjmmzm.  It works excellently for me.  It should look like: http://img7.imageshack.us/img7/6495/image1gsh.png.  My friend, on an ATI Mobility Radeon HD 2300, is getting the texture vertically flipped: http://img3.imageshack.us/img3/3637/image2sle.png.  I have no idea why it is happening.  As a check, I had him manually flip the texture, which visually fixed the problem:
vec2 coords = coord.st/coord.q;
value = (coord.p/coord.q<=texture2D(shadtex,vec2(coords.x,1.0-coords.y)).r) ? 1.0:0.0;

instead of:
value = (coord.p/coord.q<=texture2DProj(shadtex,coord).r) ? 1.0:0.0;
The issue is annoying me.  How can it be "fixed" the real way--e.g., not a hack?