hay una libreria de sockets con timeout. tengo entendido que es bastante transparente. pero no se si se puede aplicar a urllib. sospecho que aunque se pudiera quizás tendrías algun conflicto con los sockets de zope. http://www.timo-tasi.org/python/timeoutsocket.py