I would do it as Tero suggested in part 1 (configuring with public IP may not be necessary but I configured the NICs with the public addresses.) With regard to part 2 I think there must be a better way of doing this but not sure how. What I want to add is regards policy routing since the link given is not specifically for this situation, and also regarding masquerading which I don't think has been mentioned.
Add the lines
1 isp1
2 isp2
to /etc/iproute2/rt_tables.
Then:
ip addr add 192.168.100.250 dev eth0
ip addr add 192.168.0.250 dev eth1
ip addr add 192.168.1.250 dev eth2
(if these aren't already configured) then
iptables-save > IptablesSaveFile
then edit this file so it looks something like
*nat
:PREROUTING ACCEPT
:INPUT ACCEPT
:OUTPUT ACCEPT
:POSTROUTING ACCEPT
-A POSTROUTING ! -d 192.168.100.0/24 -o eth1 -j SNAT --to-source 192.168.0.250
-A POSTROUTING ! -d 192.168.100.0/24 -o eth2 -j SNAT --to-source 192.168.1.250
-A POSTROUTING -o eth1 -j MASQUERADE
-A POSTROUTING -o eth2 -j MASQUERADE
COMMIT
*filter
... your iptables filtering rules here ...
-A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth2 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o eth1 -j ACCEPT
-A FORWARD -i eth0 -o eth2 -j ACCEPT
COMMIT
then
iptables-restore < IptablesSaveFile
to activate the firewall (masquerading) rules. Then
ip route add 192.168.100.0/24 dev eth0 table isp1
ip route add 192.168.100.0/24 dev eth0 table isp2
ip route add 192.168.0.0/24 dev eth1 table isp1
ip route add default via 192.168.0.1 dev eth1 table isp1
ip route add 192.168.1.0/24 dev eth2 table isp2
ip route add default via 192.168.1.1 dev eth2 table isp2
ip rule add from 192.168.0.250 table isp1
ip rule add from 192.168.1.250 table isp2
The above is so that connections coming in on one interface are returned on the same interface. I had a DNS server running on the machine this was set up on so users could just connect to 192.168.100.250 - if you don't I'm not sure of the best way of doing this - you could possible set up a stub resolver which switches between the 2 DNS address to forward requests or set up half the users machines to use one DNS address and the other half the other.