for word in `cat f1`; dosed is a stream editor, the -i option performs the editing in-place (i.e. in the original file).
sed -i "/$word/d" f2;
This came up in the office today and I thought the solution was rather neat (if equally straightforward). Alternatives in most scripting languages (except maybe Perl?) are longer and/or uglier.