In terms of commercial apps, we know that one of the main motivations for making changes is companies want to sell everyone the new version. That's fine, if there are cool new features that everyone needs. More often than not though, the upgrades are superficial or they revolve around changing the GUI everyone is used to in favor of a GUI that is in many cases, less efficient. I don't have a problem with a learning curve, as long as the time and effort results in better efficiency.
In the FOSS world, it seems some developers decide they want a "cleaner look" so they rewrite an application with very little input from the end users. They make grand claims that the new version will change the world but in many cases, they end up driving away the user base. KDE4 is a prime example of this. I believe Gnome3 will do the same. In an effort to reduce so called "clutter", developers design an interface that requires more mouse movements and more clicks to get the job done. I think it's absurd.
Case in point; Firefox 5 was just released, only 3 months after the release of Firefox 4. There are no major improvements over Firefox 4. How could there be in only 3 months? Firefox is afraid of competition from Opera and Chrome so instead of a normal bug fix maintenance release, they slap a "5" on it and claim it's new. In an effort to reduce "clutter", they've done away with navigation buttons such as the home button in favor of a new so called "Home tab". I loaded up Firefox 4 a couple of months ago and found it to be slower than Firefox 3, not faster. The navigation buttons were hidden and/or rearranged and it took more mouse movements/button clicks to do the same task as I did in Firefox 3 with less clicks.
But hey, I hear the new Firefox 5 has better integration with Facebook.
Needless to say, I'm back to using Firefox 3.