NecroDOME, from what I've found, NVidia cards/drivers are more fool-tolerant (that is, they work even with one or two broken parameters), while ATI are more wired to the specification. This way, when you develop on an Nvidia card, everything looks fine and then the output is broken when you try the app on ATI card.

I had similar problem with pixel-addressing: Nvidia GeForce 6600 GT seemed to have good precision when selecting pixels from textures while ATI X1600 was choosing wrong pixels (not related to mapping textels to pixels).

There is nothing to be done in this case, the only "help" is to use Direct3D debug versions, as others stated, although these versions don't help in all cases.