- ANSI C was incompatible with pre-ANSI C. Current C has various minor incompatibilities like the removal of gets().
- bash defaults to non-backwards-compatible behavior and lets you set various shell options like "compat31" if you want it.
- Newer version of the JDK generally require code fixes.
- PHP has made various backwards-incompatible changes, like the removal of magic quotes in 5.4.
There's also many more cases of languages getting forked in backwards-incompatible ways and going on to be successful. C++ is doing fine despite not being fully backwards-compatible with C; VB.NET broke compatibility with VB; zsh isn't POSIX-compatible by default; there were a million variants of BASIC back in the day, and still are a million variants of SQL; etc.
Can't speak for smaller businesses, but in larger companies, there is so much "waste" that the cost in $$$ to do this is insignificant in comparison. And if you choose to spread this effort out over, say, 5 years the annual cost is miniscule.