If you have a data plan, cell phone manufacturers are happy to provide instructions to download their ringtones ($2.50 each), and they sell you the data plan ($15.00 per month). If you try to download a ringtone without a data plan they charge you a connection fee plus a transfer fee for each kb of data moved. What they don't tell you is that you can 1) make your own ringtones, 2) load them on the phone with a USB cable, miniSD flash drive, or Bluetooth, and 3) assign them to your contacts or general callers. Some phone manufacturers and providers make this a trivial exercise. For Sprint users with a Samsung phone, this Instructable can save you some money.
There are two ways I know of to do this: a really complicated way and a really easy way. The really complicated way uses software designed to reprogram the commands in your phone. A mistake could make your phone useless. It is just like editing the registry on your computer. I could explain the hard way but my eyeballs start shooting blood just reading it. This Instructable is the easy way, but there are some compromises you will have to live with.
Step 1: What is this?
This Instructable will show you what you need (with links to software), illustrations of how to edit the music down to a ringtone of 10 to 30 seconds, illustrations of how to convert the .mp3 ringtone file to a .3g2 video file that your phone will recognize as a ringtone, how to put the video file onto your phone, and how to assign the video file as a ringtone.
While the process I am about to describe works without having a data plan, it is not ideal as you will see at the end. It is also not free, but neither is a data plan, so put the one-time fixed cost of this Instructable into perspective as you read. Plus the software you will be buying is NOT hackerware, so I don't feel bad about this at all - especially since I already spent $30 in connection fees to Sprint for downloading without a data plan.
I did what I consider an exhaustive search of the Internet for all programs that will make the necessary conversions, but I did not find anything except QuickTime Pro. Feel free to prove me wrong. I know someday, if not now, there will be free converters, and even QuickTime Pro still is not the magic bullet that solves every problem, but keep reading.
UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE
Thanks to josh (see the comments to the original Instructable), I have added a step using free software called Super. So now this Instructable is completely free (after you buy the phone, computer, phone plan, operating system, etc.)