We've got an interesting range of answers here. While most like to negotiate, everyone realizes it's a slippery slope. It is very important to be well prepared. This means you need to research common compensation ranges in your industry and geographic area. Research also the company you're applying to. If they have financial difficulties, you'll have a tough road ahead in any negotiation. Also whenever a compensation package is presented to you, it's a good practice to wait to accept for a day or two to think it over and consider the overall value of the package, including the value of any benefits offered.
There are also some issues all applicants should be aware of before entering into salary negotiations. Definitely never lie about your past salary. Apart from it being dishonest, reference checks will likely expose you and you may lose the offer that way. Also, don't be overly aggressive in negotiating. Always remain polite, but firm. Also realize that sometimes short-term gain may cost you dearly in the long-term and vice versa. An old fashioned way of thinking, which has some merit, is to show your employer your value first, before making your case about your true worth. Under-promising and over-delivering usually goes long way with most employers. Lastly, don't walk away from a salary negotiation, unless you are prepared to lose the job offer.
All in all, salary negotiation is a fine art, and needs to be practiced. It involves a lot of diplomacy and negotiating skills, but keep working at it. The reward is knowing you are being paid what you are truly worth. Happy negotiating!