This is my first post about IPhone. First of all, I am a PC guy and I don't like Apple products in general. Half year ago my company offered me a choice of iPhone or Blackberry. I picked iPhone, so since then I am not so anti Apple as I used to be. I still never going to buy Mac, but I have Leopard OS installed on one of my virtual machines.
So, out of the box iPhone is great device. It has a lot of applications, but ...
There are too many IPhones around and all of them have the same ringtone for incomming mail and text message. It quickly becomes very annoying. However there is no way to change it without jailbraking IPhone.
There are no voice dial in IPhone 3G. You can install app such as Voice Dialer Plus, but you can't train those apps and unfortunatly they don't understand my accent or russian names in my contacts. Vocalia is a little better app, since you can add pronentiazations for your contacts. The only other solution is to buy IPhone 3GS. But may be it's time to switch to Google Nexus One instead?
You can develop applications only using Mac and you can make it oficially available only thru App store, but Apple does screen new applications. You can use VMWare virtual machine to run Leopard, however it's pretty complecated and might be even not possible with your hardware.
First of all you need to jailbrake your iphone, keep in mind this is going to void your warranty. Of course you can always backup your iPhone and in case of malfuntioning restore it and then bring to apple store, but this might not always work. You can read more about jailbrake on Dev Team Blog. Then download WinSCP. Using WinSCP you can access your iPhone over ssh. Make sure that you change default password (alpine).
Note: Starting from July 26, 2010 it is legal to jailbrake iPhone. DMCA has exemptions in this regards. See iPhone jailbreaking and Android rooting get DMCA exemption for more info.
Here is a list of IPhone folders that I found to be useful:
Native IPhone applications, such as Map, SMS, Calendar and etc. Those apps can't be uninstalled, but can be manually deleted using ssh :-).
Apps from apple store.
Your ringtones. There is a way to upload ringtones without jailbraking of IPhone.
Use this folder to solve Problem #1.