Getting bind9 to answer on a Dual NIC machine?

I assume that eth0 is the default route for the machine, in which case I would expect that the responses for requests coming in eth1 to go out eth0. If that is the case, you need to configure source routing so that the responses go out eth1:

# Label a new routing table
echo "10 eth1" >> /etc/iproute1/rt_table
# Add a default route to the eth1 routing table
ip route add default via 192.168.9.1 dev eth1 table eth1
# Send packets with a source IP of .25 to the eth1 routing table
ip rule add from 192.168.9.25 table eth1

This assumes that bind actually sets the source IP in the response packets. If it doesn't, try specifying both IPs in named.conf with the listen-on option. If that still doesn't work, I think your only option is to run two instances of bind, one for each IP.