One broadcasts it's ESSID as "tmobile", and requires the captive portal HTTP form login thing, and when you're connected, rewrites HTML to keep it's stupid little window open.
But everywhere there is ESSID "tmobie", there is another, non-broadcast ESSID "tmobile1x", that uses 802.1X WPA2 Enterprise TTLS-PAP, that uses the same username/password as the web login. I'm trying it right now, using the Linux Gnome Network Manager "Connect to Other Network".
Huh. That didn't work. Do I want to spend the time trying to figure out who screwed up... NetworkManager, wpa_supplicant, madwifi, atheros, T-Mobile, or DFW, so many choices...
If I do manage to make it work, I wonder how hard it would be to get a patch into NetworkManager to handle this sort of thing "when you see ESSID foo, try to associate with ESSID bar...". NetworkManager intentionally decided to be extremely simple, but I think it was a serious mistake not to put hooks in it for scripting decisions like this.