I encountered this problem when using aggregator.module to load web feeds. Sometimes the process would return with an message about a "syntax error on line 1." As it turns out, chunked HTTP/1.1 responses have extra content-length encoding in the message body.
drupal_http_request() passes the extra encodings along as part of the message body. This confuses the XML parser.