I am in the US. When I am at a local hospital they have a public wifi available for the "public". It connects automatically (perhaps because I once used it) but you need to sign in to use it. So, the phone shows the wifi icon as "connected" and the notification bar on the phone says something like "sign in to wifi". But I don't like to sign in to a public wifi so I don't login.
I have been in the same situation. The behavior that you described is as expected from the system. I haven't seen any app that would work in that situation (unless occasionally, the local network is misconfigured and has some ports open even when the person hasn't signed in).
Unfortunately, Android is not able to realize that if there is no connectivity via Wi-Fi, despite being connected to Wi-Fi and the strong signal, it should use the mobile network.
(Actually, I am thinking that some apps might be programmed to disconnect from Wi-Fi if the connectivity is absent, and then connect back. I am not sure if I wanted Aquamail to do that, because it might misjudge what's happening and thus interrupt, say, my voice or video conversation that is happening at that time.)
For the networks that you've connected to before, you can "forget" the network.
See e.g. here how you can do that:
http://androidqueries.com/removing-wifi-network-settings-previously-connected-wifi-network-android-phone-5662.html(BTW, it can be a good idea to remove the old networks that you do not need.)
HTH.