Well, often they know it´s hard to estimate, but the entire corporate system is built around having things done by a certain date, your time costs money and payments are usually linked to those dates. They don´t really have a choice but to make a planning based on the estimates you give and monitor the progress so they can give the proper level of panic to their bosses. Of course, software has always been a disaster with estimates and attempts to tame the chaos haven´t been that successful.
I usually make a ridiculously detailed list of all tasks. ¨Add button A on screen. Discuss details: 2 hours. Interface work: 0.5 hour. Code work: 2 hours. Database work: 2 hours. Testing: 2 hours. FAT: 2 hours. Changes after FAT: 1 hour. SAT: 2 hour. Test script: 1 hour. Update documentation: 2 hours. Add button B … ¨ Put it all in an excel sheet and summarize. Most PMs don´t even want to start arguing a list like that, and it seems to make a reasonably good estimate for me.
Yeah, Sim City is not that realistic, but what some politicians belt out is so wrong they wouldn´t even get them out of a city builder start area.