J2ME apps involved no carrier participation (though often you had to target all of the profiles), and most devices, including standard Nokia feature phones, could run it. Windows Mobile apps...well that was always completely open and with little carrier control.
And of course...WAP. Largely forgotten now, but the Gopher-like WAP was usable on pretty much every feature phone, optimized for limited displays and input technologies. It was a giant dud for a variety of reasons, but it was always an option back to the turn of the century. And you didn't need a data plan, which remains the #1 impediment to the mobile revolution, though you did get charged usurious rates for the packets you did use.