I don't know about i-mode, but the main difficulty with custom ringtones in early 00s was that it wasn't easy to load them into your phone. Most of those phones (in my own experience) came with a ringtone editor where you entered them note by note. They could also be sent and received via SMS, but that in general only worked between phones of the same brand (try sending a ringtone from a Nokia to a Siemens and you get three screens of garbage characters, ask me how I found out). Later ones could be connected to a computer with a "data cable" that was a somewhat rare accessory, but you could then just load MIDI files. Oh, and IR ports. People used them all the time to share ringtones and images and games.
Same with Java games when they became popular. The hardest part was getting them onto your phone. You either used a data cable, or had GPRS set up in "internet" mode (as opposed to "wap"), or someone else shared them with you via IR port or Bluetooth.
Yes, there were paid ringtones/images/games, or course. But carriers themselves never sold them. It was third-party companies. A ringtone usually was $1.
Carrier-locked phones never really caught on in my country. It always worked such that you bought a phone for the full price and provided your own sim card. Some carriers tried the US model early on as an option, but people just weren't having it.