Shaun, I don't think the PHP_AUTH variables get supported in an IIS environment. That may be why they're not working.
With IIS, it's probably going to be really clunky. Try using REMOTE_USER (to get the user-name) and REMOTE_PASSWORD, but if I remember right the latter isn't supported.
To really auth the credentials, you'll need to retrieve all headers with an ALL_RAW and decrypt the ...base64... in the "Authorization: basic ...base64..." header.