There should be a preset period of time that any employee can "sit" in a grade, (especially the lower grades) without advancing.
Case and point: If an employee is a GS-5 for more than 4 years, and is receiving anything less than an "outstanding" rating, they should be given 30 days to advance to GS-6, or else they are terminated.
Employees that are allowed to stay in lower grades for long periods of time with minimal evaluation scores only results in a sub-par employee in an entry level slot that could be filled by a new, fresh employee wtih fresh ideas. Furthermore, allowing the employee to remain only serves to create a negative work environment.
This is the standard for military service--- and should be in civil service as well. (the tax payers should always get the best bang for their buck)