I'm just guessing here, but if the renderer is based on OpenGL and it uses GLSL shaders you have to take into account that the ATI drivers are much more strict about GLSL compilation. When a function expects a float2 and you pass a float4 expecting automatic conversion, it just won't allow that. So, Nvidia drivers do the automatic conversion and just issue warnings, ATI issues them as errors and refuses to compile them hence the bad textures & lights.