I can't remember where I came across it (possibly Gowers' Plain Words), but I like the rule that you should hyphenate to avoid ambiguity but not otherwise. E.g. is "a red head scarf" a red scarf for the head or a scarf for red heads? From context, it should be obvious, but hyphenating "head scarf" would make it explicit. (Of course, you could always avoid the problem entirely by using "headscarf" instead.)
There are some exceptions: e.g., I've read you should always write "Douglas-fir" instead of "Douglas fir" because it's not actually a fir.
There are some exceptions: e.g., I've read you should always write "Douglas-fir" instead of "Douglas fir" because it's not actually a fir.