1. you can seldom get multiple IP's from an ISP, it depends how they work. from your perspective here a hub IS a switch. that's wrong, but close enough for your questions. a switch won't do what you want and any switch you would be pricing for will not do a single thing in terms of configuration of it. nada.
2. you would need a router to do QoS or a pseudo-equivalent of it. a linux router can do this, but requires another machine. other than that... just see what off-the-shelf routers in your price range provide... i doubt you'll get lucky though.
3. no. ethernet is ethernet. operating systems are irrelevant.
4. configure your router correct. portfoward.com is a very very userful site. i've got this far and you've still apparently not realised that what you want to do for the websites is also to portforward, assuming the server sits topologically the same place as the desktop and laptop...
and the one that you didn't even validate with a number is probably the best if you don't want to spend out for a hardware router... you would be best to just use a gui firewall builder like firestarter, which will more than likely throw in the routing and port forwarding functionalities for free while it configures a decent firewall. to do it manually you would enable ip forwarding and configure iptables to to ip masquarading, and i don't think that's somethign you're going to want to do. in this solution though you would only want 2 nic's anyway, one internal one external. the internal nice just connects to a $10 switch and both clients plug into that. you would configure each internal node to use, for example, a 192.168.0.0/24 network address using the server as the gateway.
personally i would say buy a $50-$100 ADSL router, and have it do all the security and forwarding, or if you have a spare old x86 lying around, you might like to look at ipcop.org to do the same thing for free within linux.