In TF2, when I'm a Sniper, is there a way that I can hold down (MOUSE2) to zoom in (and release MOUSE2 to zoom back out again), rather than toggling zoom with MOUSE2? There doesn't seem to be an option in the keybindings. Is there a way around this?
Without scripts, no.
However there are several scripts that can help you out, depending on what you're looking for.
The TF2 wiki has a page of sniper scripts, this one may be useful (It's a quickscope script however, not a 'hold to zoom'):
bind mouse3 "+qz;" alias +qz "+attack2; wait 33; -attack2; +attack; wait 3; -attack;"
And This Steam Forum had this to offer:
// In sniper.cfg. cl_autorezoom 1; alias +snope "+attack2; wait 20; -attack2;"; alias -snope "+attack2; wait 20; -attack2;"; bind mouse2 +snope; // In all other class-specific configs. bind mouse2 +attack2;
Your cfg folder can be found here:
%PROGRAMFILES%/Steam/steamapps/%common%/team fortress 2/tf/cfg.
This guide will tell you all about your scripting and config files.