I've seen various Apache versions of this question but no IIS one, so I'll ask it:
I have 2 IIS7 servers, and 2 domain names (e.g. www.fooone.com and www.footwo.com), and 1 IP address.
I want each domain name to go to a different IIS server, and the IIS servers are serving completely different content.
Can IIS handle this, or do I need an additional proxy?
What you want to do is fairly common and is called "reverse proxy". There are a number of similar questions on ServerFault and StackOverflow with several different solutions.
IIS7 can do reverse proxy with a couple of modules installed .. here is a tutorial.
My recommendation is to use nginx (spoken "Engine X") on a third system and have that system host the single IP address. I like the idea of sp[litting this from the web servers, just for the sake of clarity.
Finally, as of the beginning of this year the StackOverflow family server/hosting configuration used an HAProxy frontend. I can't speak with certainty if it still does given the "StackExchange" explosion.
Depends. Same content on both sides?
IIS can not handle it, but Windows Server has a NLB (Network Load Balancing) component that can. Assign the IP for the NLB cluster, then route the requests to both computers.
Yeah this is a tuff situation, what you can do is send all traffic to one server and then redirect to another using your internal network and ip's, kind of like a proxy. You could run this right off of the header information.
My understanding is you will need a proxy to divert the traffic to the right internal server, something like an Apache server with proxypass directives or a Squid box will do it. You could hit real issues if you want SSL though.
ISA might be able to do this however if you can run that on one of the machines. Then have IIS running on the ISA box on a different internal IP and set up ISA reverse proxy rules.