This may seem trivial, but after reading the incoming questions on http://forums.microsoft.com/msdn I realize a good number of users could benifit from some help asking questions.  Here is a support article written by Daniel Petri, an MVP who likely spends a good ammount of time helping other users out online.  Here are some choice quotes:

Before asking
 
- Search the archives/FAQ before you post. Most forums and newsgroups have some sort of online FAQ (FAQ stands for Frequently Asked Questions) or archives...

Josh Note: On the MSDN Forums go to the applicable forum where you might ask the question and set the filters to show all answered questions and sort by total views descending. :-)

- Use online search engines such as MSN Search, Google, Yahoo! or other search engines. Post the error message you're getting on your preferred search engine and see what you come up with. Let us know what you found, especially if your problem is identical or similar to your findings.
- Look for an answer in the manual, documentation or readme file and tell us about it.
- Ask a skilled friend, but don't take their advice for granted. Many troubleshooting scenarios just got worse because "my friend told me to erase the E00.log file and"...

On Choosing a Title:

a badly-formatted title will drive people away, thinking that since the title is so badly written, so must be the information and the question within the thread. For example:
 
          "PLEASE HELP, I NEED HELP N O W !!!"

On the question:

Know how to ask the question, and provide all the necessary information in your initial post. For example, a question like:
 
          "Please help me, I cannot mount exchange mailbox store!!! I must repair this ASAP,
           will someone help me?"

will also receive the same sort of answers that this article tries to teach you how to avoid, or no answers at all. And if someone did want to try to answer, they'd need to ask for more information, which in turn will cause you to come back and explain yourself, thus lengthening the answering process.

Good examples of questions will include information from most of the following categories:
 
- What are you trying to do?
- Why are you trying to do it?
- What did you try already, why, and what was the result of your actions?
- What was the exact error message that you received?
- How long have you been experiencing this problem?
- Have you searched the relevant forum/newsgroup archives?
- Have you searched for any tools or KB articles or any other resources?
- Have you recently installed or uninstalled any software or hardware?
- What changes were made to the system between the time everything last worked and when you noticed the problem?
 
Don't let us assume, tell us right at the beginning.

When you get an answer:

Follow up with a brief note on the solution. If one of the answers helped you, we would all like to know which one it was, and what you did to finally solve your problem. This is what an online community is all about - sharing information . Sharing information is not just by taking information from us, but also by sharing your success and failure stories, and by helping others who might read your post in the future understand what was the outcome of the thread. Consider how you might be able to prevent others from having the same problem in the future.
 
Also, saying "Thank you" and letting people understand that you care about their time and effort is a good way of getting noticed.

Josh Note: On the MSDN forums you can give the person credit and help others out by clicking the "Mark as correct answer" button on the reply that answered your question.  Doing this is VERY helpful to other users, enables us to credit the top answerers, and build a FAQ list.

Read the full article here: http://support.microsoft.com/?id=555375 

Update: Here are some more helpful hints: http://www.danielmoth.com/Blog/2005/03/please-read-before-posting-to-ng.html