It used to be the case that people expected some promotions to fail and superiors were prepared to take action. Often people were given another chance, in a different job. If that didn't work out they were sent on their way. That system, however, seems to be forgotten.
In The Atlantic, Thomas Ricks does an excellent job exploring this idea in the context of the Army.
Since 9/11, the armed forces have played a central role in our national affairs, waging two long wars—each considerably longer than America’s involvement in World War II. Yet a major change in how our military operates has gone almost unnoticed. Relief of generals has become so rare that, as Lieutenant Colonel Paul Yingling noted during the Iraq War, a private who loses his rifle is now punished more than a general who loses his part of a war. In the wars of the past decade, hundreds of Army generals were deployed to the field, and the available evidence indicates that not one was relieved by the military brass for combat ineffectiveness. This change is arguably one of the most significant developments in our recent military history—and an important factor in the failure of our wars in Afghanistan and Iraq.
To a shocking degree, the Army’s leadership ranks have become populated by mediocre officers, placed in positions where they are likely to fail. Success goes unrewarded, and everything but the most extreme failure goes unpunished, creating a perverse incentive system that drives leaders toward a risk-averse middle where they are more likely to find stalemate than victory. A few high-profile successes, such as those of General David Petraeus in Iraq, may temporarily mask this systemic problem, but they do not solve it.