There are many reasons people haggle prices. Large ticket items, such as cars, don't have a fixed price. The end price is decided upon by the seller and the buyer based on available information about the item. Such as how old it is, what kind of condition it is in, what visible pitfalls does it have that need to be addressed, etc. If you've never had to haggle before, you might get taken advantage of.
Clients that haggle the price of a freelance project are aiming to lower the overall cost, but still have all the work completed. It's basic math: you will do X thing for Y price that you estimated. The client wants X thing for sure, but Y price is too high for their budget or their comfort level. They will give you the job if you do all of X but for Z price, which is notably less than Y. Why is this a big deal? Well, aside from the time involved to complete the project in a straightforward manner, you also have to consider other time spending costs. Have you worked with this client before? If yes, how many times did they email you about changes? Did they stay on top of emails, did they keep with their own deadline, were they easy to work with? If you haven't worked for them, are they an established business that will need additional work in the future? If they're an individual and not a business, have they worked with other freelancers? How long ago? How many times per year? All these questions need to be asked before you start the haggling process. You'll have a more solid understanding of your client's history and expectations, which can give you better footing when you pitch back your counter offer for the work.
Going back to the equation we have set up, price Y is too high according to your client. If you feel Y is fair, defend your reasons why. If you have examples of past work that is similar to work X, show it to your client if they haven't seen it yet. This will show your value immediately and reflect you're more than capable of taking on their project. If your client still pushes for price Z, you can either walk away or come back with a counter offer. It is your choice where to go if they're steadfast on price Z. Is the work worth the time for less than what you think it's worth? Is the client someone you'd like to work with in the future? At this point, it's all down to you. If you decide to come back with a haggle, here are some tips:
If price Z is too low, and price Y is too high, aim for a price that isn't at Z but below Y. Don't cave right down to Z if they don't budge from it. For a monetary example: Y = $500 and Z = $350. In this instance, counter offer between $475 and $425. It's still less than your asking rate but is notably higher than their price.
If they still won't budge from Z, go a little lower but don't end on their rate. Obviously if you wanted the project you would agree to their price and get to it. In our money example, come back with $400. It's $100 less than your price but only $50 above theirs. This might influence them to think you're giving them a bargain and bite the bullet on the final cost.
If they still don't agree to your price after two offers, stop. Continuous back and forth might come across as bad business practices. You show you value your skills and work by standing by your higher offers.
Freelancers aren't used cars but sometimes we get treated like our abilities are abundant and the market is saturated. In a way it is, but not with good designers. Unlike products and objects, designers aren't all alike in practices and methods. Some great designers work for cheap, but most do not because they know they are worth more. Cheap designers could be new to the freelance environment and don't know how to haggle properly. Other cheap designers are con artists that rip off other people's work and make a profit by doing very little.
Stand by your skills and value. If you don't, no one will.