Where I work they're trying to combat this by creating tighter, more objective definitions of levels and putting people in those. The salary bands within a level are relatively small.
This cuts out a lot of the crap. You can still negotiate but not outside of band.