tags and cscope look excellent.
However, for the grepping and general file searching stuff, wouldn't that be better done from the shell? I generally have both vim (either MacVim, or shell-vim) running, as well as a the command line sitting in a window right next to it.
What's the advantage of doing the searching inside vs. outside vim?