Multi Platform Shader Issue

I’ve been experimenting with shaders for the past day or so, and have added shader support to my rudementry engine. The process has been interesting and fun, but now I am havinga problem; on OSX (Intel core duo + radeon x1600 graphics) the shader demo renders flawlessly, but on windows (Nvidia 6600GT sli) the demo looks quite ugly, and is not rendered how it should be.

Here are some screenshots:
OS X:
http://img181.imageshack.us/img181/6947/osx9tu.png

Windows:
http://img264.imageshack.us/img264/4969/windows1pe.jpg

Both machines are using the latest drivers and the same java code (apart from native).

The one clue that I have to something not working corectally with regards to shader support on the windows machine is that when I compile the shader on the windows machine the ARBShaderObjects.GL_OBJECT_INFO_LOG_LENGTH_ARB is equal to 1 with the content being the character for a square:


Info log length:1
Info log: [symbol for square]

On the apple machine the length of the log is 0.

The shaders that I am using are just some text shaders that I found on the internet that do phong shading:

Vertex:


varying vec3 normal, lightDir, eyeVec;

void main()
{
	normal = gl_NormalMatrix * gl_Normal;

	vec3 vVertex = vec3(gl_ModelViewMatrix * gl_Vertex);

	lightDir = vec3(gl_LightSource[0].position.xyz - vVertex);
	eyeVec = -vVertex;

	gl_Position = ftransform();
}

Fragment:


varying vec3 normal, lightDir, eyeVec;

void main (void)
{
	vec4 final_color =
	(gl_FrontLightModelProduct.sceneColor * gl_FrontMaterial.ambient) +
	(gl_LightSource[0].ambient * gl_FrontMaterial.ambient);

	vec3 N = normalize(normal);
	vec3 L = normalize(lightDir);

	float lambertTerm = dot(N,L);

	if(lambertTerm > 0.0)
	{
		final_color += gl_LightSource[0].diffuse *
		               gl_FrontMaterial.diffuse *
					   lambertTerm;

		vec3 E = normalize(eyeVec);
		vec3 R = reflect(-L, N);
		float specular = pow( max(dot(R, E), 0.0),
		                 gl_FrontMaterial.shininess );
		final_color += gl_LightSource[0].specular *
		               gl_FrontMaterial.specular *
					   specular;
	}

	gl_FragColor = final_color;
}

Any help would be greately apreciated, as I am new to shaders and this problem seems quire daunting.