[Linux] Network setup, bridging connections

--- back story ---
My parents are living in a little village where there is no DSL or cable connection available. For the last 9 years they used an ISDN line which was billed per hour. Needless to say, it was a nightmare. We considered a satellite link but it's too expensive and quite limited. Finally, we decided to try using a USB UMTS modem stick. Unfortunately, there's no UMTS connection but EGDE works reasonably well.
So I installed this stick on their desktop and switched them from Windows XP (which was needed for the ISDN stuff and it wouldn't work anyway, giving some stupid error) to Ubuntu 9.10. It was quite a hassle getting it to work. It decided to register itself as a USB drive which is fine for Windows since that's the way the drivers are installed but it sucks for linux because you have to switch it to modem mode manually. After I finally got it to work (excessive tinkering) that POS network manager refused to connect to the internet (it wasn't even trying, just giving a "disconnected" message immediately). A few hours and several .deb packages later (which I had to download to my laptop and transfer with a USB drive) I finally got the connection working with "wvdial" on the command line.
(Since Pidgin relies on network manager to get the network status it refused to connect because it thought there was no connection available. I had to use a command line switch to make it work.)
--- /back story ---

What I want to do now is use a Wi-Fi USB stick to allow everybody to connect to the internet. The stick is working (only ad-hoc mode, no master mode available) and I can get everybody to connect to an ad-hoc network although I had more success on the command line than via network manager. I'm stuck, though, because I can't figure out how to make the internet connection available. I tried a few things but nothing worked. It's probably just an iptables rule to bridge the two connections or something.
If anybody could tell me how best to set up an ad-hoc network which allows everybody (including the desktop to which the UMTS modem is attached) to connect to the internet I would be most grateful.
Thank you in advance.

You're saying 'bridge', but you almost certainly want a 'router' instead, one doing NAT. You'll be getting a single IP address on your Ubuntu box, and you want to share it among multiple machines on a different physical network. Microsoft calls this Internet Connection Sharing. I'm not sure what Apple calls it offhand.

I did an online search, and this is what I found on the official Ubuntu site. I assumed they'd have a nice GUI for doing that by now, but apparently they haven't written one yet. Linux itself is perfectly capable of doing what you need -- most consumer routers run Linux, after all -- but it looks like you'll have to muck around on the command line some. It should be rock-solid once you get it going, but may be a bit painful to get there.

You may also want to run a DHCP server on the Ubuntu box, to hand out IP addresses automatically to your clients. You'll probably also want a DNS resolver. If you host everything right there, you won't be dependent on any services from the outside except for basic IP connectivity.

Thank you, it only took the three iptables rules given on that page. Turns out the magic word I was looking for is IP masquerading. I already planned for a caching DNS server and as soon as I find the time, I'll set it up.