The only solution to that problem that I can think of is to better educate the end user, and to make them see that even though company X's shiny product seems better right now, in the long term there is everything to lose by using their communication systems. That's a hard fight though.
Believe it or not, people are actually kind of rational, and pick product A over B for some real reason. Usually B, if feature equivalent or even feature advanced of A, has a hideous UX (command line, really?) and/or visual design (e.g. ugly fake chrome). It might also not be up to date on what is in fashion, but we don't buy unfashionable cars either unless we are going for something retro (part of our culture); consider that "the shiny" at your own peril.
After all, Gmail may have its problems, especially recently with Google+, but it interoperates with every other email service (and until recently, Jabber client) and is relatively easy to move off of; for most of its 10 years of existence, I'd say it had a positive role in keeping people using email. It's far, far better than something like Twitter where the platform owner has absolute control and can censor tweets or arbitrarily crack down on third party clients.
Similarly, while App.net didn't exactly replace Twitter, I think I think its emphasis on encouraging people to write independent clients for it was very healthy for it (and while some of those clients were proprietary, proprietary native clients for open platforms are far less bad than proprietary platforms). Why didn't tent.io try to launch with spiffy clients?
To be honest, I don't think it's as much that open can't be shiny as that creating a social platform without an existing userbase to leverage is nearly impossible - most closed platforms fail too. And I think most developers know that shiny is necessary - it's just that there isn't enough motivation and enthusiasm. But it's unreasonable to expect anyone to use your platform if you're not going to spend enough engineering effort on it...