For the XP site: look up 'internet sharing'. You just need to enable this.
For the GNU/Linux site I think that you just need to
- Fire up the 3G connection
- Assign an IP address to the NIC
- Assign a different IP address to the NIC on the other computer
- Add routing table entries.
Enable forwarding. (
sysctl -w net.ipv4.ip_forward=1
)If you are using non public IP ranges (e.g. 192.168/16) and you want to connect to the Internet then you also need to enable IP Masquerading. (Thank you for reminding me of that @MaQleod).
On both cases you need a crossover cable or a MDI/MDX aware port on at least one of the computers.