If you are going from one subnet A over the linux box to another subnet B and then via router to the internet, you will need to do a SNAT on the linux box. You have to hide subnet A on the Linux box to it's IP address on the B subnet.
If you have to go from subnet A via subnet B then just use a router. That's what they're used for. If a subnet uses RFC1918 addresses, then NAT is required. Eitherway, any device on either subnet still has one default route.