I've seen many cases when really good and very experienced people leave Cognizant (a total waste of talent and expertise) because of annoying micro managers and team leads who seem to lack good interpersonal skills.
While money and promotion is a HUGE and crucial factor, it is not the only reason for people to stay in their current jobs-- the feeling of self worth, and to be respected and valued by your colleagues specially your supervisors are among major reasons why some people remain and excel in their jobs.
Add to that development of technical expertise and a bit of mentoring, you will understand why we lose expertise every day!