Every job has something that wastes a lot of time but for the most part you should be able to get close when estimating time. If you find that you are way off at every project then you aren't planning properly and you need to get that sorted out.
If you need an extra hour or two at the end of a project then i don't think its a big deal. Things happen. If those things are your fault (you guys drop a TV and have to waste an hour going to buy a new one) then you eat it. If those things are the clients fault (anything from customer supplied crapware to the clients electrician making a mistake or arriving on time and finding that the client is using a specific room and doesnt want anyone in it for an hour...forcing you to stay late) then the client pays for those additional hours.
Avid Stamp Collector - I really love 39 Cent Stamps