Hi, I need some serious help (or tip)

Well, I figured out our engine was using SOFTWARE_VERTEX_PROCESSING (doh, how could it be posible) so I changed it to HARDWARE_VERTEX_PROCESSING. Now i'v got an error in the DirectX 9 lights (fixed function pipeline). They work on both ATI and nVidia, but the results are different!

This will lighten objects dynamically on nVidia cards but shows NO result on ati cards!!! everything is black
Code:
    Lights[i].Attenuation0 := 0.5;
    Lights[i].Attenuation1 := 1;
    Lights[i].Attenuation2 := 0.2;
However when I change the Lights[i].Attenuation0 to 1 it works fine with ati cards... Strange problem...
Code:
    Lights[i].Attenuation0 := 1;
    Lights[i].Attenuation1 := 0;
    Lights[i].Attenuation2 := 0;
However this light looks better on nVidia cards. on ati cards it's overbright (alsmost only white lights, on nVidia its colored)

What can I do about it? Need help...

ps. don't ask why it was on software vertex processing...
ps2. it all worked well in software vertex processing...