<p>What are some good ways to do this? Is it even possible to do cleanly? </p>

<p>Ideally I'd like to use packet headers to decide which server should handle requests. However, if there is an easier/better way let me know.</p>

I found
this post
which suggested to have two separate IP addresses so that both could listen on port 80.
There was a caveat that you had to make a change in IIS because of socket pooling.  Here are the instructions based on the link above:
Extract the
```
httpcfg.exe
```
utility from the support tools area on the Win2003 CD.
Stop all IIS services:
```
net stop http /y
```
Have IIS listen only on the IP address I'd designated for IIS:
```
httpcfg set iplisten -i 192.168.1.253
```
Make sure:
```
httpcfg query iplisten
```
(The IPs listed are the only IP addresses that IIS will be listening on and no other.)
Restart IIS Services:
```
net start w3svc
```
Start the Apache service