Honestly, the reason is not that important since nothing would legitimate Zidane's headbutt. The only and best answer would have been to score a goal 2 minutes before the end of extra time.
Insults are infortunately common on a soccer field and as a pro, Zidane should have understood that the whole was going to pay for his reaction.
On a human aspect I can understand what he did (I said "can") but on as a long time professionnal, ready to leave the scene with a world cup, what he did was not professional.
I'm french, and this moment of the final still hurts :)