If your external file is just adding files and doesn't really need a Tcl interpreter, then I would source it from the .qsf. Much easier and more direct. But it appears that you're using a variable $src_dir, which wouldn't work. If that's really necessary, then the pre-flow script is better, which it sounds like you're doing. Note that the pre-flow script does not really have an open project(which is confusing, because you have it open in front of you). This allows the script to do things outside of the project, although admittedly, that is seldom required. Just bracket your script with project open and project close:
project_open <project_name>
<add file commands>
project_close