We would like to warn you that distributing binaries compiled with the iPhone SDK through channels other than the App Store is against the user agreement of the iPhone SDK; please use this for personal use only. :)
The iPhone SDK is a great environment to develop applications on; however, my friend and I find it ridiculous that we would need to pay to deploy applications to our devices for personal use when we can do so via jailbreaking. There was a loophole in firmwares 2.x that let you compile by just bypassing codesigning altogether or by using any certificate you had lying around. This no longer works with the 3.x SDK, however, there is another way to go about doing this.
Sadly, this means you can't use Xcode to build your project for the device. The good news is you can still use it for everything else if you want to. Most of the credit really goes to javacom who put together a comprehensive howto on compiling iPhone projects with Makefiles instead of Xcode. His howto shows you provides you with sample code and a Makefile that will deploy 2.x SDK applications to your device bypassing codesigning. I won't repeat the entire how to here, what I will give you are the modifications that need to be made to the how to in order to get it compiling for a 3.x target.
What do these tweaks do? The first should be fairly obvious; it tells the compiler to build for the 3.0 SDK. The three other modifications ensure that the compiler being used is GCC 4.2.1, which is required to understand the 3.0 UIKit headers. (Thanks to jpedroso on this thread at Stack Overflow for pointing this out.)
From that point on, the rest of the instructions will work fine and if you follow them, you will get a Demo application showing up on your SpringBoard. Then you just have to adapt the Makefile to the Xcode project you want to compile, and voila, you will be able to deploy to your device without codesigning on iPhone OS 3.0!