I think promotions to the next level should just be considered a new job (in the same company), and you don't 'win it' or get promoted - instead you apply for it and go through an interview process. If you study/train and get through the interview, then you get the job and all it's benefits. This way, employees can focus on doing the right things for the company and if they feel they're ready for the next level, apply for it.
If they don't get it, its based on merit - they can go back, get more experience/study etc. and reapply later. Their ego isn't destroyed, they're not pushed to to do the wrong things simply to get promoted, and I bet most people will remain at the company.