Tab completion works fine for me in zsh. All I do is:
autoload -U compinit
Then you just setup your “zstyle” commands for specifying tab complete behavior.
Here’s my .zshrc if you want to copy what I’m doing. I stole most of the stuff in there from various ones I found on the Internets.