I've had a theory since Naruto and Sasuke faught in the valley. During that time a lot of emphasis was put on exactly what a friend actually is. When fighting your best friend they _know_ you're attacks, defenses, strategies.. As it was said their hearts connect and they can tell what each other are going to do next. It's a challenge even beyond sharingan, precognative knowlege of the next attack. The idea being that the sharingan allows the user to already have a distinct advantage, by fighting your best friend, someone who has such a great connection with you.. it takes away all advantages and returns you to your rawest form and forces you to finally push yourself to that next level. That's why, even though Itachi wasn't Sasuke's best friend, he was able to push himself to a higher level (with Itachi's help of course), because he was fighting someone he shared a "bond of hatred" with...
At least that's my theory.