Fourth is to flip your projection-matrix for rendering in 2D mode. Then you get Java2D like coordinates again which you just might prefer for some reason.
It's not that I prefer Java2D coordinates, it's that coordinates of the image are upside-down comparing to opengl coordinates. Anyway, don't know if it matters, but I'm doing in 3D.
No, it's neither wrong nor outdated. The BMP format, which the early NeHe texturing tutorials use, (usually) has the origin of the image in the lower left corner. This matches the default OpenGL texture coordinate system so the images do not need to be flipped. Some image file formats specify the top left corner as the origin, others allow it to be either/or. The BMP format actually lets you specify the (x,y) coordinates of the origin as part of the header relative to (0,0) being the lower left corner.
I'm using identical images, downloaded with source for LWJGL, .BMPs also. Just tried with PNGs, same thing.