On anything complex, I just do something like this.  I'll go into my
rc.local and add a command to execute my custom network script, say
/etc/net.custom.

My /etc/net.custom looks something like this:

#------------------------------
#!/bin/bash

# First bring up all interfaces
ifconfig eth0 ip1 netmask mask1
ifconfig eth1 ip2 netmask mask2
ifconfig eth0:0 ip3 netmask mask3

#build routing table manually
route add -net net1 netmask mask1 some-routers-ip
route add -net net2 netmask mask2
route add -net net3 netmask mask3
route add default gw ip1

#firewall
ipchains -F

#--------------------------------

It's not standard but I find it easier to manage than all the
/etc/sysconfig/network-scripts/ifcfg*'s.  All my network hacks are in one
file that I can just /etc/net.custom (did you know tab completion doesn't
work in e-mail?) and squash all the errors until I get it right.

While we're on the subject, how do you flush the routing table?  I do a
'route -f' and it just returns the help screen telling me that a 'route
-f' should do the trick.  Odd.

-Brian