I have experienced similar problems with ATI. Shaders that will work fine on nVidia will crash on ATI, locking up windows in the worst case. In most cases though it seems to just try and use some kind of software shading giving extremely poor results.
Do ATI cards support more than 128 uniforms? I am using 138 and it seems to cause crashes.
Or am I using to many instructions? My vertex shader implements a kind of 4d noise and has quite a few instructions… Does anyone know of any limits?