[Update]: This doesn’t work anymore from OS 3.1 onwards.
With the iPhone OS 3.0 Apple implemented so called „Tethering“. This is a very simple method to use your mobile phone as modem at your pc/mac. So you do not need to have a second SimCard ( called MultiSim ) with an USB-Stick. The problem is that most mobile carrier does not allow such tethering option or MultiSim with an iPhone, which is bundled with an internet flatrate in most cases. Some carrier may have extra options for tethering, where you have to pay for – of course. But its so much easier.
To enable tethring on your iPhone there is nothing more needed than an .ipcc-file which contains the carrier information. Even for non jailbreaked iPhones there is a very simple way to put this file on your iPhone: http://www.iphone-notes.de/mobileconfig/
The website provides a download or email service. So you could surf with your iPhone Safari on the site, or let you send an email with the ipcc-file. Just enter your e-mail ( only if you would like the e-mail way ), select your carrier, fill in the captcha and thats it. Your will reciev, or directly download an .ipcc-file.
On your iPhone you will be asked to install a „profil“. After accepting this please „restart“ your iPhone. Now you are able to enable tethering under the Settings menu -> General -> Network -> Internet-Tethering.
On a Mac you should now connect your iPhone vie USB-cable. A dialog will prompt with two new Network-Adapters. Just confirm this, wait a second until the IP-stuff is completed and the tethering starts ( i didn’t not get a connection via bluetooth yet, but it should also be possible – post if you found out ).
This just need iPhone OS 3.0 and i successfully tested it on iPhone 3G and iPhone 3GS.