I work in IT and I absolutely HATE when the leads or clients ask me to estimate how long it will take me to finish a project. The fact is, unforeseen obstacles always come up and anyone in my line of work knows that guarantees can't be made. So basically, I feel like when they do this, it's to get you to make a commitment so that if it takes longer than expected they can come back and vent their frustrations on you when they don't get what they want when they want it.
I think that from now on whenever I'm asked that question I'm just going to tell them that it'll get done when it gets done.