The real reason why Zidane headbutted was to save Marco Materazzi's life. A sniping feline was going to assasinate Materazzi until Zidane intervened.
other possible motives include that Materazzi had stolen Zidane's butterfinger bar.
or that it wasn't even really Zidane at all!
and here is the exclusive clip of materazzi's vengence