If you right click on the tab for any open buffer, you can do: "Change directory to", and go to the directory of that file before launching the Open File dialog. The Open file dialog opens at the current working directory, so if you changed there just before launching the Open File dialog, you will be there.
I also have a macro bound to a key (I use Alt-C) that will change to the directory of the active buffer AND put the focus on the smart open window. I use it VERY FREQUENTLY, here it is:
_command void cdToBufferFocusSmartOpen() name_info(',' VSARG2_READ_ONLY|VSARG2_REQUIRES_EDITORCTL)
{
cd_to_buffer();
smart_open();
}
I would think that macros to change the current directory to the project directory could easily be written and bound to another key.
I find myself frequently using the Smart Open tool window instead of Open File dialog. I tend to only use the Open File dialog when I want to create a new file, I navigate to the desired directory in File->Open and type the name of a file that does not exist, then I have a new file. But for opening existing files I use Smart Open with my macro often, or just type a few characters of the filename in Smart Open and I can get to that file very quickly.