I’ve been studying the Phong Shanding on GLSL these days, but the light coordinates doen’t work well.
I think it doesn’t be coincided between OpenGL and GLSL.
if you are passing the light-coordinate in as a uniform, you have to multiply it by the modelview-matrix in effect when you would call glLight(GL_POSITION, …) for fixed-function.
If you use the “normal” gl-state from the shader, it should be the right position already, but the current ATI driver has a bug in so far as that it doesn’t seem to be doing that transfrom.