1. Failure to research the industry. This is the main reason people are underpaid. Sure, talking to friends is great but go broader than that. Glassdoor.com provides anonymized salary information on a per-company basis. Job sites like indeed.com contain salary ranges. LinkedIn can also be consulted. Finally, the stalwart salary.com provides a bell cure of salary for a specific title.
2. No B.A.T.N.A.[a] Best Alternative to Negotiated Agreement. Leverage. Fall back position. Multiple irons in the fire. Call it what you will. Having a good "plan B" gives you the upper hand. Even if the recruiter is negotiating for you, you need to negotiate with the recruiter.
I never have seen BATNA before, interesting. I'd lump that in with negotiation. If you have multiple irons in the fire, that should be part of your negotiation tactic. If you know what you are worth and you have value above what you are being paid, you should make that clear and negotiate based on those facts.
A recruiter negotiating on your behalf mainly serves as a buffer - to prevent either side from souring a deal that should happen. If my client tells me they are going to offer 80K as a first pass to someone making 100K, I'll encourage them to make a better offer for fear of ruining their chances to present a higher offer later. If a candidate tells me to ask for 150K even though they will accept 100K, I'll educate the candidate that this tactic may prevent an offer from ever being made.