Lock-in is a very old problem – it's as old as commercial software, and decades ago people realized that one way for users to combat this problem was to demand and embrace open standards. So software companies "embraced" open standards. Some of these standards have been very successful, such as those that the Internet was built on, like TCP. Others, like SQL and HTML have thrived, but have had various extensions added by vendors that have threatened to balkanize the standard.
Even Open Source software uses the Embrace, Extend, Extinguish model. What is Linux if not an embrace of all the positive aspects of Unix, including many of the familiar utilities, along with many useful extensions? And it's protected by a strict license that prevents the remnants of the commercial Unix vendors from taking Linux's innovations and rolling them back in. The consumer is better off in many ways, as most observers would admit that Linux has achieved a level of widespread acceptance, utility, and, yes, even uniformity, than Unix had in its many years of existence, pre-Linux. And, though being free (Gratis) was a major factor in its popularity, it's cost in relationship to the generally-very-expensive proprietary Unix hardware-software solutions it replaced places it firmly in the Embrace, Extend, Extinguish pantheon, since undercutting a competitor's price is one of the time-honored tactics of this practice. (See: Internet Explorer)
So while E-E-E isn't lock-in per se, its result is a de facto lock-in: as one piece of software uses an established standard as a wedge into a market, if it can gain users and bury competitors using E-E-E, it will eventually reign supreme, leaving users with no alternative. Often, the E-E-E tactic is followed with our next lock-in method, as the dominant player exploits its position by ensuring that the major third-party applications for its platform work only on that platform. Windows-only, Oracle-only, Photoshop-only, and yes, even Linux-only, applications and extensions are all too common.
The software world is a symbiotic mishmash of different software with varying levels of interoperability and dependency. Nothing exists in solitude. A PC with no software is a doorstop. A kernel by itself is worthless, an operating system with no applications is useless, but applications won't run without an OS, and extensions and plug-ins won't run without an app. Especially in the enterprise computing space, a particular application will generally be supported only for a particular mix of necessary software: a particular OS (and even a particular version, which might be an older one), a particular database, a particular application server, a particular webserver, a particular ERP system, a particular accounting system, and so on.
It's difficult and costly to code, test, and support your software with all the various available versions of the above types of software, so companies typically pick one or two and focus on them. So companies that achieve dominance, often find it easy to hold on to that dominance, at least on the short term, because the major application vendors only work with them. And these relationships are explicit and often backed by contracts, co-marketing relationships, revenue sharing, and bundling.
Sometimes, it's not even market dominance that's the impetus for anticompetitive partnering, but mere shrewdness. IBM could easily have supported a variety of operating systems for its new PC, or picked a better-backed one, or written one itself, but it picked a second-hand one proffered by a young college dropout, and the rest is history.