Ok.

It isn't working that way though and it is now down to IIS/Apache/bind etc not listening on the right IP addresses, because it effects ping and traceroute as well.

If I ping www-isp2.norman.cx from a remote host and sniff on my local network I see the incoming packet arrive via ISP2. I see www-isp2.norman.cx reply, using the correct ISP2 IP address. The reply never reaches the remote host though.

The only explanation I can think of for this at the moment is that it is being sent out via ISP1 (which is the default gateway).
_________________________
Remind me to change my signature to something more interesting someday