Companies do have a salary range that can be offered to a candidate. Apart from the candidate's skills, it also depends on various other factors like how soon they need a candidate, the nature of the industry etc. I don't think it has got aything to do with one's honesty, but it's more about what to inform them and what not. You tell them about your weakness/desperation and there is a high chance that you get exploited. Diplomacy is must for negotiation, but there can be no negitiation unless you have some burgaining power (in terms of having an alternate choice or unique skill). And finally knowing what you want is good, but if someone is offering you more than you expected, you should quietly except it :)