There's a long standing issue in the ISAPI redirector, that by default the HTTP headers are obtained using the CGI style ALL_HTTP variable. The net result of this is that the case of headers is lost, and all underscores in the original header names are converted to dashes. There's code in the redirector to handle parsing the raw HTTP headers from the ALL_RAW variable, which is enabled by defining USE_RAW_HEADERS and appears to work fine.
This code appears to have been there since the beginning of (Tomcat) time - does anyone know of a good reason why USE_RAW_HEADERS should not be the default (and indeed why there should even be an option)? https://issues.apache.org/bugzilla/show_bug.cgi?id=38895 is the issue (from 2006!) cheers tim