Ok, it was soemthing someone posted on anotehr board - here is what they say.
'Now, going back to what i said about the output produced by Cg not being 100% compatible with the Radeon series of cards (I speak from an OpenGL pov btw, I dont know about D3D stuff) when compiled with teh ARB profile..
This ISNT because they are not following the Nvidia Cg specs, this is because they [ATI] havent completely covered teh ARB shader specs which say that a card should be able to do swizzling in one operation (swizzling being an instruction such as this : mov reg.xyzw reg.xywz so the z and w components are swapped around during the move instruction), which the 9700 and below cant do.
In conclusion, the Cg output correctly follows the ARB specs, its the card which doesnt follow them 100%, so this isnt a case of Nvidia dictating things, its a case of one of the (few) cases where ATI dont quite do things properly.'
I thought I'd check with you guys, before I responded