#1 – Don't work with a recruiter who insists on knowing what you currently earn. Most of them will ask, but if they keep asking after you've said you won't disclose it, then walk away. They don't have your best interests in mind. They want to get you to accept the lowest salary on the table so that they can maintain their relationship with the hiring company. If they develop a reputation for trying to negotiate and advocate for the candidate, the hiring firm will find another staffing agency.
#2 – If you're dealing with an HR person or hiring manager within the company you are considering, I want to be very clear that you don't want to be rude or defensive with them (even though they're being rude to you by asking how much money you make). That will almost guarantee that you don't move any further in the process, and it's likely that they are just following instructions from higher up. But you don't owe them an explanation as to why you don't want to talk about your current salary or the salary of any other position you've held. So don't offer one. Don't even make one up. It makes you seem weak, and it gives them confidence that if they keep pestering you, they can wear you down.
#3 – I think Liz Ryan's point, and it's a good one, is that you should stop playing along with the broadly held idea that the employer is the one with all the power, so they get to make all the rules. Unless you are currently out of work and are going into debt just to pay the bills, you have more power than they do because they need help; you don't. Even if you are unemployed, you both have skin in the game, so why do they get to call all the shots?
#4 – If you're worried about being removed from consideration, don't be. You don't want to work for a company whose position is “I don't care how good you are. If you won't divulge very personal information that has absolutely nothing to do with your ability to fulfill the duties of this role, we don't want you here.”
#5 – How to respond? Tell them “I understand why you're asking. But I am looking for [insert minimum to maximum range]. If that is within the range for the position, then it makes sense for us to keep talking. If not, then I don't want to waste your time or mine.”
#6 – In keeping with the subject of timing … if you are in various stages of the hiring process with multiple companies, continuing to screw around with Company A, who only wants to pay you 5 or 10% more than you currently make, could end up hurting you with Company B, who is willing to make you a fair offer based on your skills, experience, and the nature of the role. They could be interviewing a number of other candidates, and if you are holding them off, waiting on Company A to get off the checkbook, they could assume you aren't serious and offer their role to someone else. This is why you need to make it clear that you want to start the discussion at $X, and if that's above their range and they won't budge at all, you need to move on.
#7 – Knowledge is power. Find out what their top line revenue is, net income, etc. If they're earning hundreds of millions a year and want to quibble over an extra $400 to $500 a month, you don't want to work there. But still, you can use the info to your advantage. Tell them “Look, you guys have been really successful. Your revenue has tripled over the past 2 years. I'm really excited about this opportunity. Can we get creative and find a way to get closer to my target?” Again, if they won't even talk about bumping their offer, do yourself a favor and walk away.