Assuming IPv4 and Linux, either...
- The computer closest to the modem is not configured to pass packets on one interface onto the other. To fix this...
CODE
# echo 1 > /proc/sys/net/ipv4/ip_forward
...Or...
- The computer farthest from the modem is (correctly) saying that its packets are coming from one of these addresses, and your ISP is dropping them. You'll need to have the computer nearest the modem change all packets coming from the other computer such that they describe themselves as coming from an IP that the ISP will accept -- EG, by building iptables into the kernel and...
CODE
# iptables --table nat --append POSTROUTING --out-interface eth1 -j MASQUERADE && iptables --append FORWARD --in-interface eth0 -j ACCEPT
Neither of these fixes will survive a reboot, so put them in init.d. To be honest, for some things, it'll probably be easier to just run your application on the computer closest to the modem, and have it display on the computer farthest from the modem. Some good fringe benefits this way, too, especially if the computer farthest from the modem is running one of the more primitive OSes, like, say, Windows.
For more (and better) information, look up a HOWTO on building a router.