Usando iproute2 puedes hacer algo como esto:
echo "1 admin" >> /etc/iproute2/rt_tables
echo "2 users" >> /etc/iproute2/rt_tables
ip rule add from 192.168.122.40/32 dev eth0 table admin
ip rule add from 192.168.123.41/32 dev eth1 table users
ip route add default via 192.168.122.1 dev eth0 table admin
ip route add default via 192.168.123.1 dev eth1 table users
Ahora tendrá dos tablas de enrutamiento con dos puertas de enlace.
Este fenómeno se denomina unicast rpf (reenvío de ruta inversa) como un filtro de ruta estándar pero inversa en Linux. Puede deshabilitar esto sin consecuencias negativas importantes (a menos que sea un ISP... y un enrutador).
echo 0 > /proc/sys/net/ipv4/conf/default/rp_filter
Entonces tu ejemplo debería funcionar como quieres.