Linksterman,
I think I have figured out the problem. I am by no means a python developer, actually downloaded the installer today and started on the same thing you were working on, and ran into your same problem. Any way, what I found was the User-agent header needs to be set, once set google is ok with the search request. I would like to do a wire trace to compare HTTP streams but at least it works.
from urllib2 import urlopen
from ClientForm import ParseResponse
response = urlopen("http://google.com")
forms = ParseResponse(response)
form = forms[0]
print form
form["q"] = "dogs"
# ....updated code below this line....
request2 = form.click() # urllib2.Request object
request2.add_header('User-agent', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.1; .NET CLR 1.1.4322)')
response2 = urllib2.urlopen(request2)
print "HTTP Code:"
print response2.code
print response2.info() # headers
Please note, the top portion of the inital HTTP GET was slightly different so the code may not work as exact, please use as a guide.
Phil