I think it's reasonable to inform new users of how to acknowledge answers by upvoting those that are helpful and accepting the one that was used or best resolved the issue. Many new users simply don't know that that's how things work. Sometimes they'll post comments like "Thank you so very much!! That worked great, you're a lifesaver" without accepting the answer, because they don't know better. That's not only frustrating for the answerer, it leaves many questions with an unanswered status after they've been resolved, which isn't good for the site.
It doesn't always work very well to wait until they've posted a "thank you" comment to educate them on how to acknowledge answers, because many (probably most) first-time posters don't become regular visitors. They'll post the comment, then not come back to the site for a long time, since they have no reason to come after their problem has been solved. If you wait for the "thank you" comment before informing them, they might never see your explanation. Or they might try a proposed answer, see that it works, and not even come back to leave a comment. This isn't necessarily out of rudeness. It's often more a case of "out of sight, out of mind" for people leading busy lives.
I've often informed new users of how to accept or upvote answers, but I propose following these guidelines when doing so:
- Always use comments. It's no more appropriate for inclusion in an answer than any other explanations of how to use the site.
- Rather than trying to reinvent the wheel, you can keep the comment brief and provide a link to the help section that explains what to do when your question is answered (http://meta.stackoverflow.com/help/someone-answers). This has the added benefit that once they've been directed to the help pages, they might read other sections.
- Check their profile to see whether they have never accepted an answer before. If they've accepted answers in the past, then they obviously know the drill, and "informing" them of what they already know is unnecessary and smacks of lobbying.
- Never lobby for your own answer. That's pushy and gauche, especially if there are other answers. Even if there are no other answers, the asker shouldn't be prodded to accept an answer if they haven't indicated that the answer provided a solution. Explain to the user how to accept an answer, and be careful to avoid even the appearance of advocating for your own answer.
- Make it clear that you're not specifically asking them to accept your answer and that you're not pushing them to accept an answer unless the issue was resolved by posting the comment under the original question rather than under your answer, and using comments like "if your issue has been resolved, please mark the answer that best resolved it as accepted".
- If the user has specifically indicated that a particular answer resolved the issue, then it's okay to post the comment under that answer and imply that they should accept the answer. It's still in better form to start with the word "if" rather than just telling them they should accept the answer.
- If you post these kinds of comments when you've answered a question, consider doing this for answers other than your own if you see a user who has never accepted or upvoted an answer before acknowledge a solution by means of a comment. Remember, it's not about you, it's about teaching newcomers how things work at this site.
Coincidentally, just last night I was thinking about suggesting a feature that pops up a message explaining the proper way to acknowledge answers any time a user who has never accepted or upvoted an answer posts a comment containing the words "thank you" or "thanks" in response to an answer to their own question. That would eliminate the need for the last two bullet points.