The difference between httpclient and what the sun HttpURLConnection does seems to be that sun's impl caches authentication and preemptively sends the Authorization header after the first challenge happens. This means that the first transfer happens twice, to trigger the authentication challenge, and then subsequent transfers happen once only with preemptive auth.
We need to look into a way to cache the fact of an auth challenge so we know to authenticate preemptively in the httpclient-driven wagon.
Need to make sure httpclient-driven http wagon is compliant with the spec: http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html (see section 8.2.3)