I'm relieved someone else thinks it is weird, I've been questioning my own sanity the last few days!
Anyway, computers connect to the router ok (they all pick up IP addresses, and can ping each other). I can log into the routers' web UIs and they show a normal looking IP address on the WAN side.
I just carried out a little experiment: I connected my 3g mobile to a computer and shared that internet connection through a NIC. I plugged the router's WAN socket into that and then other computers to the LAN side. Guess what? It all works. So I'm pretty sure my routers and all their settings are fine.
This is really odd.