Here is how to use full length songs as ringtones, fully bypassing the 30 second from iTunes.
To start you have to have a jailbroken iPhone running the 2.2 firmware. Next you need to enable ssh access via OpenSSH installed through Cydia. Once thats up and running download and install WinSCP onto you computer.
First we need to create a ringtone. Open up the desired song in iTunes, right click it and select "Create AAC Version".
Once its done converting right click on the new version and select "Show In Windows Explorer".
Rename the song type from ".m4a" to ".m4r".
Make sure your iPhone is connected to the same network as you computer. Startup WinSCP that you just installed. Click on the Session tab. Enter the phone's IP address. The user name is root and the password is either "dottie" or "alpine" (no quotation marks).
A dialog box will popup asking you if you want to accept the RSA key from the iPhone. Click Yes.
An explorer window should open. In the right pane navigate up one level, then to "stash", the to "Ringtones".
Once there simply drag and drop your new ringtone into the folder. Once it's done copying go to Settings on your phone, click Sounds, then Ringtone and there it is.