For instance the HD 3870 should outperform the 8800GT but because AMD sucks it doesnt.
Why should it? There is more than clock speeds and stream processors to a GPU. For exemple. The 8800GT has 56 Texturing units, the HD 3870 has only 32. This severly reduced the pixel fill rate. The core and shader clocks on the G80/G92 are unlinked, allowing the shaders to run faster than the core, increasing shader performance. R600/RV670's clocks are linked, therefore the shaders (although there are more of them) are forced to run at the same speed as the core although this will change with RV770.
But the main thing RV670 lacked was Texturing units and that was it's achilles heel and will be corrected with RV770.
Drivers were spot on for the card.
Oh, and I forgot to mention that a certain Nvidia driver was the origin of over a third of BSOD's in Vista.