I was able to get up2date working through my company firewall by fixing what seems like a bug in a python library script. The script is urllib.py. If you have your proxy environment variable set up in the standard way, it looks like this:
http_proxy=user

assword@proxyserver

ortnum
The proxy string gets attached to the url and passed into the function open_http as one long string, and the script tries to break it apart, but it's schizophrenic about how it interprets it. The problem is that the url itself can have a login name and password, for example if you're going to a web site that requires you to log in, so there can be two login name/password pairs in the string: one for the proxy and one for the url itself. open_http thinks there is only one, and if it finds it, it treats it like the url login, even though the comments say it's the proxy login!
I fixed it by changing it to treat the name/password as the proxy name/password. In the process, I broke it for url's that require logging in, but I don't care, I'm just trying to get up2date to work.
To fix it, find the line in open_http that says
if realhost:
user_passwd, realhost = splituser(realhost)
realhost is the original url, but the proxy info is in host, so change the line to this...
if host:
user_passwd, host = splituser(host)
One more change. At the bottom of the function, where it's adding stuff to the http header, change this line...
if auth: h.putheader('Authorization'...
to this:
if auth: h.putheader('Proxy-authorization'...
After these simple changes, up2date works like a charm through the firewall.