a)- I would not host the dns and IIS together on the same machine, ouch, your asking for trouble. Imagine if I were able to get into the one machine and alter dns records for the sites, I would have great fun. Hence the reason not to role your own. Unless of course your really want to experiment and your not hosting paid customers. This is a no no.!!
b)-Hosting dns and IIS on the same machine means you will put 2 nic's into the machine, poor form, hence the provider telling you to get 2 IP's. You will need 2 IP's in order to effectively deliver people to the sites. Receive request to dns, then direct to website IP's.
c)-You will need to do some funky dns/routing rules to push people to the correct domain name instead of ip address. Possible and not very hard, but still funky.
d)-you can push your dns handling to your internet provider and have them update their records to puch all requests back to your external ip for the hosted websites. Much easier. This will take a day or 2 for them to update, maybe longer. You can check by doing a ping on your domain name not the ip address.
one way to setup.
1)- standalone DNS server, which connects to a router then firewall to dum modem to the outside world. It will receive requests for the domain names, it will then forward the users to the web server which also has an external IP and IIS. DNS will deal with sending people to the right IIS container or iis using multiple host header names
Of course this is on a very nutshell. Microsoft technet site has many many articles on setting up what you want. link to technet dns -- link to iis multiple sites
be warned your are going to be hacked if you dont use some sort of DM zone or very decent firewall and great rules. Suggest you use external DNS provider and just worry about your IIS server, which should run nothing else. I only say unless the websites are your personal ones, then no real issue of angry customers.