That's a great subtle question. Here's a first try at answering.
You're absolutely right that if you just stacked layers of Zn and Cu, you couldn't get any steady current to flow. Basically, again as you suggest, there would be an initial slight shift of electrons from one metal to the other so that their electrochemical potentials match. The electrical potential difference would be just enough to make up for the difference in Fermi levels.
So what's the water doing? The water layers are thick enough to prevent electrons from flowing through them. Only ions can flow in them. So there's no requirement that the electrons' net electrochemical potential be level across a water gap, and of course it isn't. The key is the different electrochemical properties of the Zn++
ions, described on other battery questions on this site. So the solution properties of the ions, not just the Fermi levels of the electrons, enters into the battery potential.
Now we get to the last major issue. If there's a monolayer of water between the nominally touching Zn and Cu layers, why doesn't that wreck the battery? A monolayer of water is just not enough to stop electron flow. The electron wave-functions don't abruptly fall to zero. They leak out even into a vacuum. This tail of the wave-functions can sustain a current of electrons. The process is dubbed "quantum tunneling", since the electrons get through regions where the potential is too high for them to cross classically. So you don't need very much water to stop electron flow and shut down the battery, but a monolayer is ok. I haven't calculated precisely but I bet a layer of water only 100nm thick would be more than enough to block the current. The monlayer is less than 1 nm thick.
As for ohmic contacts, that just means contact for which, over the range of currents you're interested in, V=IR. In things like diodes, the range of currents for which that's true is very small. In a metal film resistor, it's larger.
(published on 05/17/11)