Hi,
Not too sure what you mean by the 'two extra subnets'....
Anyway, that D-Link 804 device does NAT and DHCP so works in a very similar way to how you'd set up linux to do IP masquerading. The key is the NAT (network address translation). In essence, all local machines would have an address in one of the rfc 1918 ranges of subnets for private usage - i.e.
10.0.0.0 - 10.255.255.255 (10/8 prefix)
172.16.0.0 - 172.31.255.255 (172.16/12 prefix)
192.168.0.0 - 192.168.255.255 (192.168/16 prefix)
The router has one interface on that subnet and one (or more) connected to the internet. However, rather than just route the packets (doesn't work as return address is meaningless on the internet), it zaps the origin lan address and replaces it with its own wan address transparently. When responses are received it does the reverse transalation. So, internet traffic from any box plugged into the router on the configured local subnet will leave the router as 203.1.2.3 in your example - i.e. from the internet side it appears to all originate from a single address of 203.1.2.3 and the lan is totally hidden.
So, for exchange, its quite easy if its only for internal use - you just give it a lan address and you can configure it to use your ISP's SMTP server. However, if you want to act as MX for a domain then it would be more complicated. You'd need to have the dns for the domain pointing at the IP address of the mailserver yet thats not possible if its an internal rfc 1918 address. So, you could point it to your wan interface 203.1.2.3 but that wouldn't work on its own as there's no mailserver there. What you also need is port forwarding functionality that says 'when I get inbound port 25 send it to lan machine x'. You router does this with 'virtual hosts' - check the docs.
Otherwise, you could set it up like this - Get two network cards for the linux box and configure one on the router's subnet and the other on another subnet for lan connectivity. Then plug all the lan boxes into switches/hubs so that they talk to each other (i.e. don't use the integral router switch ports). After that, the linux box must be configured to do IP forwarding (routing) and you'd set up rules to masquerade all non-local lan traffic out of the linux box's other interface. However, unless the router supports forwarding you'd have the same problem with inbound mail stuff etc so you'd then need to connect the linux box directly to the adsl modem and configure the linux box with that 203.1.2.3 IP address.
To sum up, as I see it, you don't really need linux to do any routing / nat, etc., in this case because your D-Link does it all . If you don't have the manual its here --> ftp://ftp.dlink.com/Gateway/di804/Manual/di804_manual_051101.pdf
Hope this helps