However, the export script can't do anything about it, texture co ordinates range from 0.0 to 1.0 remember ;-)
It can. The trick is not to use the texture coordinates http://www.blender.org/documentation/246PythonDoc/Image.Image-class.html
Cool, this would be worthwhile then...
It should also be checked in the engine in case someone uses an export script without the check. Unless we change the model version. If we were to do that we should also export tangents, normal map filename and specular map filename.
And also because the texture can be changed at any time after the export!
As for a new model format, I think just using Collada or MD5 would be the way to go, but I would sincerely like to see a G3D exporter that actually supports G3D v4, and exports normal and spec maps (G3D v4 was of course mostly made with Duel-Field in mind, and supports five texture slots, I recently changed the meaning of the last two though, from reflection and colour-mask to custom1 and custom2, as I don't think we need to support reflection or colour-mask maps in an RTS, and I needed custom textures for a custom shader for Constellus).
Tangents don't need to be exported from Blender, the engine code calculates them perfectly (I did some research, Martiño's code even averages them at shared verts, it's as good as we can get I believe). I have your bump mapping shader working correctly, though the 'base' lighting is still dodgy, but that can be copied (mostly) verbatim from the diffuse only shader.
This is all in a local branch atm, I have some issues to sort out because of the VBO code, and I wasn't planning to push the branch, but just merge back when everything is done. But if you want to take a look / have a tinker yourself, let me know, I'll push the branch.