iwconfig wlan0 essid blah is seemingly not working when connecting to a open wireless network, then try
iwconfig wlan0 essid blah
iwconfig wlan0 key open
iwconfig wlan0 enc off
The above seems to work for me by turning off encryption. It would appear with encryption enabled, iwconfig won't work for a open network because of some magic or other. If it still doesn't work, then try stick the above in your
/etc/network/interfaces and prefix the commands with "wireless-", like so:
iface wlan0 inet dhcp
Hope this help some people, it drove me nuts!