Every programmer, once in a great while, has a perfect day. You wake up 5 minutes before your alarm goes off feeling great. Breakfast is made and on the counter, along with fresh coffee, so you can grab something and head out the door. During your commute you hit every green light, and traffic seems to be especially light. Contemplating the day ahead of you, you are able to fully understand the design and consequences of the task ahead of you, which has been well planned with firm requirements.
You get to work and you find that you have no important emails, no voicemails waiting, and your co-workers are either out or in meetings that you don't have to attend. You fire up your editor and are immediately in the zone, you can feel the structure of the code and see your data structures and algorithms fitting into place within a beautiful and cohesive whole. Thoughts flow through your hands to the keyboard, entering perfectly formed code that is elegant, maintainable, and with not a bug to be found.
During the day you work with no interruptions, the office is quiet and you are so focused that you're never tempted to spend any time catching up on the news, blogs, etc. When you compile and run your tests, you find that everything works without a hitch, of course you knew it would, and at the end of the day you commit with no conflicts. Glancing at the clock on your way out you realize you put in 12 hours and it felt like a brief 20 minute coding session.
That day, that perfect day, is what we assume we'll have every time we have to estimate anything.