Let me explain. I use the leisure facilities in a local hotel. It has a public (open) wifi network. I believe it uses an old router. My Galaxy S2 (Gingerbread) and AsusTransformer (ICS) both connected to this network without problems. I recently replaced the S2 with an S3 (ICS) and my Transformer with a Nexus 7 (Jellybean). Neither of my new devices connect to this network. I have had the same problem in a local cafe.
I have researched this problem. It is not uncommon. It appears to be caused by an odd mix of hardware (router and wifi chipset) and software (later versions of Android). If you are unlucky (like me and some others) you will be unable to connect to some networks.
The solution is to use static IP addressing (since your device is unable to obtain a dynamic IP address). This will allow your device to connect to the network -- but you need to know the correct settings (for static IP addressing) before you can actually use the network.
This problem has been reported by many people. Does anyone know if there is a fix or a workaround?
The only one I can think of it to get hold of a device that does connect to this network and copy the (static IP) settings. But this would only solve it for one location meaning that I will run into it again the next time I try to connect to a network with old hardware.