CD.vim ってプラグインあるし、
set autochdir
とすれば同じことできるんだけど、開いたファイルのパスに空白が混ざってる場合はディレクトリ移動に失敗する。対応するにはパスにある空白をエスケープする処理が必要。
:au BufEnter * execute ":lcd " . substitute(expand("%:p:h")," ","\\\\ ","g")
mac と ubuntu9 での動作は見たけど windows は試してない。そもそも windows ではファイラからガンガンウインドウを開いて使うからたいして必要ないんだよなぁ。