Addendum to my last comment:

From http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.2.3:

```
      - If a client will wait for a 100 (Continue) response before
        sending the request body, it MUST send an Expect request-header
        field (section 14.20) with the "100-continue" expectation.

      - A client MUST NOT send an Expect request-header field (section
        14.20) with the "100-continue" expectation if it does not intend
        to send a request body.
``` 

Thus maybe is just a matter of using `--header 'Expect:` to force curl not using the header in any circumstance to avoid the 100 Continue behaviour.