If like me you were wondering why your POST request is going out with the header 'Expect: 100-continue' set, it is being added by libcurl.
This can only be noticed when using HttpRequest::getRawRequestMessage() and not HttpRequest::getHeaders(), or of course tcpdump or similar.
To remove this header you can do the following;
$r->addHeaders(array('Expect' => ''));
Note this behaviour has also been reported in http://au.php.net/manual/en/function.curl-setopt.php#82418