Believe I may have this working now. The Treo was sending its Host header as follows:
Host:<hostname.esri.com> (Note the lack of space betwen the colon and hostname. This probably isn't valid but was corrected by Apache as it proxied the request on to IIS. However, maybe the initial invalid header there somehow caused Apache to decide the connection wouldn't support Keep-Alives? In any case, when I add: RequestHeader set Host "hostname.esri.com" Everything works! The odd thing is is that Apache was still matching on the correct name based virtual host.... so perhaps regular apache virtual hosting uses a different system for validating the Host header than mod_proxy does... Hallelujah! And thanks to all who bore with me on this issue. Ray