Questions about which module to use are indeed on-topic, but as other questions, they require a little of effort from the users. I think that this answer to What information should be given when asking a question? shows what details the users are supposed to give.
If the question is about which module to use to implement a feature in a site, describe in detail the feature you want to implement, the result you want to obtain, and which modules you have already tried.
Before asking a question about which module to use, you should first search for a module to use on Drupal.org or Drupal Modules. (Use "the Module Finder" block visible on top of Drupal Modules.) If that doesn't give any good result, try googling using the "site:drupal.org" option; this should give more aimed results, if you first didn't find the more appropriate module in the first 6 search pages.
This would avoid that the users who answer suggest a module that has been already tried, but it has not been chosen for any reason.
If the question doesn't shown any research on Drupal.org or Drupal Modules, the question is probably going to be closed. Searching at least on Drupal.org is the first expected step, in such questions.
Describing the exact task you are trying to achieve allows you to get a more correct answer, especially in the case there is a more generic module that can be used, but also a more specific module has been already written.
What I find much suspicious are those questions asking for a module to use, where the answers are all similar to "You could try the [link to the module] module: [excerpt taken from the project page]." Since the user who asked the question doesn't ask further questions about the module (even in a comment for the given answer), I feel like one of the following cases applies:
- The user who asked the question didn't search on Drupal.org, or didn't notice the module
- The user who asked the question is merely deciding which answer to accept basing on the votes it gets
In the first case, the user didn't probably search too deep on Drupal.org; this is what I feel when I am able to find a module that suits the user's needs. (I am not that good in finding modules; if I find it, and my answer is accepted, probably the user could have found it too.)
In the second case, the user is just using the question as pool. If the question is also too generic, or subjective, then the question should be avoided.
Let's remember that the help center, under What topics can I ask about here? describes Drupal Answers as "a Stack Exchange site for project managers, themers, developers, site-builders, administrators, and businesses using or thinking about using the Drupal CMS." We should be less aggressive toward the new users, since they could simply be people who are thinking about using Drupal. This doesn't mean we should accept every question, but that we should explain why the question is not acceptable, if it is going to be voted to be closed.