Learning and researching about a new technology or problem area is a very exciting activity for programmers.
Curiosity, for a programmer, is like an insatiable impulse. An unquenchable thirst. You take your time as you browse through one information to another. Consuming content after content. This can span from hours to days or longer. Your desire to "know more" drives you like a mad man. But when you're doing this during the course of a client project this can be a problem.
Enter Agile's key principle of simplicity. It gives emphasis on the simplest solution the would meet the requirements that best reflects your current knowledge on the technology and problem area.
Applying that in this context: You don't need to know everything right away.
Trust that the deeper you go into the project, your knowledge and experience increases as well.
Your clients simply can't afford a prolonged or delayed release and neither will you have that sense of accomplishment from actually shipping something.
So how do you deal with your insatiable curiosity?