Since iOS 4.3 the iPhone is able to act as an Access Point. Three options are available to use the iPhone as an Internet Network Adapter via USB, Bluetooth and WiFi.
You will recognize that the USB and Bluetooth feature works fine for you. But when you use it as an Access Point and connect it via WLAN the connection is not stable.
When you plug the iPhone with power, you get also stable WLAN connections. But not when the iPhone runs on battery. This could be an issue which is not that obvious until now. So don’t wonder if you run your iPhone on battery and try to use it as an Access Point, it will not work until you plug it with power.