Should one say "I’ll put you on the waiting list" or "on the wait list"? Likewise, is it "I will give you my visiting card" or "my visit card"?
I am very confused when to use the -ing form or not. Is there a general rule?
"I'll put you on the waiting list" - US & UK. Slightly commoner in UK than in US.
"I'll put you on the wait list" - Almost exclusively US; much rarer than 'waiting list'.
(Data source: Google Ngram viewer; corpuses: British English 2009, American English 2009)
Are you sure you mean visiting card (see http://en.wikipedia.org/wiki/Visiting_card ) rather than business card?
But -- since you asked -- visiting card is the usual term.
I don't think there is a general rule for the use of -ing versus no -ing, except that British English tends not to drop it. However, it is much safer to treat the various expressions where it might or might not be used on a case-by-case basis, and to just try to remember which version is idiomatic.
Citing “cat food,” “book store,” and “web site,” is like comparing apples to oranges. Those cited words are compound nouns, where the name of the thing is more than one word. Those are not nouns modifying nouns. For example, you wouldn’t say, “stand ovation” for “standing ovation,” or “walk wounded” for “walking wounded.”
It should be “waiting list,” not “wait list.” It is improper to modify a noun with another noun, or a verb, for that matter. We learned in grammar school that a participle substitutes for an adjective.