There are two different types of solutions. If you can describe which type of traffic you wish to send to which ISP, you can use multiple uplinks without load sharing [1].
This sounds like the problem I posted earlier this week. I've got most of my traffic going out eth2 (T1) and a little going out eth1 (ADSL). eth2 is the default gateway, and a few selected netblocks and hosts are statically routed to eth1.
Now I find that I can't traceroute or ping to eth2 from a host routed to eth1. The failing ping seems to be because the ICMP replies have a source address of eth2 but are going out eth1, and I suspect the ISP is egress-filtering these. I'm guessing this happens to all my replies. Is there any way around this? The ISP for eth1, which is on a /29, is PacBell. Should I bother to ask them to put in an exception in their egress filter?