Good news everyone, it finally was a firewall configuration issue.
It appears the problem is related to a sonicwall firewall and enabled content filtering. The sonicwall firewall does actually filter on the application level and filters the 'minimal' HTTP headers coming from PHP. wget and lynx seem to be more verbose in their HTTP headers and are allowed to pass. I tried playing with the user_agent in the php.ini and some other settings but no luck.
I didn't do the changes on the firewall myself - according to my provider a simple reboot fixed it... I did read however that the tricky part for sonic firewall owners is that the content filtering module on some models is enabled by default despite it being a 'pay for' module. On these models you have to disable it manually on a non documented page http://your.ip/diag.html
Thanks for your help, it's a big relieve it's working now.