YES CHRIS, I WROTE THIS UP -- ERICA (email@example.com)
p.s. Follow me on twitter: @ericasadun
US AT&T Customers: I don't have specific details on adding tethering to your account but just give AT&T a call. They'll help with the billing.
Note: UK People start here: http://twitter.com/timmeh/status/1351833678
Note: US People look here: http://tinyurl.com/cstrqx (New version by Michael Johnston of iPhone Alley)
Over Bluetooth: http://www.joachimbean.com/Computer_Inventory/News/Entries/2009/3/19_Tethering_on_iPhone_OS_3.0_over_AT&T.html
HOW TO ENABLE TETHERING ON YOUR 3.0 iPHONE
Step 1: Check if you own a 3G iPhone. If you're on EDGE (as I am): sorry. Tethering does not seem to work with EDGE phones.
UPDATE: SEE THE US INFO ABOVE. [Step 2: Check to see if AT&T is your carrier. If it is: sorry. AT&T will not let you tether.]
Step 3: Navigate to ~/Library/iTunes/iPhone Carrier Support. Notice the spaces in that last folder name! If you're at the command line, use backslashes to escape the spaces, i.e. cd ~/Library/iTunes/iPhone\ Carrier\ Support. You will find a file with an ipcc extension. Copy that file: e.g. cp foo.ipcc foo.ipcc.original. This creates a backup for when you mess up.
Step 4: rename the ipcc extension to zip. For me that was ATT_US.ipcc renamed to ATT_US.zip. (Did I mention how I'm on a 1st Gen iPhone with AT&T?). Unzip it. This creates a new folder called Payload.
Step 5: Navigate into Payload and then into the folder under that. Mine was called ATT_US.bundle. Yours will differ. Inside that folder you will find three files that you will edit: Info.plist, version.plist, and carrier.plist. Open all three in the Property List Editor that comes with the dev tools on a Mac.
Step 6: In Info.plist, change the CFBundleVersion to 5.0. Save.
Step 7: In the version.plist, change the CFBundleVersion to 5.0. Save.
Step 8: In carrier.plist do the following and then save:
(a) Add a new dictionary to the apns array:
apn = internet
password = password
username = iphone
(b) In the wap dictionary (mine is wap.cingular, sts's was wap.dol.ie), add a new pair. Do not edit the password or username:
type-mask = (NUMBER) -2
(c) Add a new pair at the top level dictionary of the carrier.plist file. (We're not sure this is strictly speaking necessary but go ahead and do it.):
AllowEDGEEditing = (BOOLEAN) YES
Step 9: Zip up the Payload folder in which you just made your edits. Rename it to the same name as the original ipcc file. (For me that was ATT_US.ipcc).
Step 10: Connect your iPhone to iTunes.
Step 11: In the Summary tab, option-click "Check for Update". Navigate to your ipcc file, select it. It takes no more than a second or two to update.
Step 12: Reboot your iPhone.
Step 13: In prefs (on the phone) navigate to Settings > General > Network.