My advice is to refuse in every way you can to be the generic fungible engineer most management wishes you to be, and to instead specialize in emerging technologies. When such technologies are in demand, your compensation will skyrocket.
1. http://softwaremaestro.wordpress.com/2007/06/30/scrum-master...
The biggest source of No True Scotsman fallacies on the internet.
We take about 10 minutes/day.
If you're paid at a certain level, and there exists a job that will pay you 50% more, there are basically 2 possibilities:
1) You know that job exists, and there are others like it, and you don't want it because it requires you to come into an office / work in an industry you don't like / do something less fun.
2) You're currently underpaid and haven't been able to line up competitive pay to force 2 company's to bid you up to market rates. Maybe it's a personal thing, maybe it's that the magical 50% raise is a one-off anomaly by un-educated employer, or something else.
In either case, the employer wants to figure out what you're currently paid, and they should be able to get what they want without giving more than 10 or 20% more. The only real way to get around this is to refuse to give current comp and be viciously underpaid, or to get 2 companies to give offers and start bidding it up.
In short, yes, you may be able to keep your salary as you move around. There are probably jobs out there in expensive areas that pay more than you make right now, but I'm guessing you don't want them.