Thanks for your comments. I do agree that perhaps it my CV does look strange because I haven't spent more than 2 years in a position (Though I do have valid reasons). Anyway, How do I find out why I was not chosen? I definitely would love to know the reasons. For the most part, I'm dealing w/ a huge HR department. In some cases, I know the name and e-mail of the person hiring, but is it appropriate to contact the person directly?
I might suspect that the HR department is discarding your application because they think you are a "job jumper," and as I mentioned, may even think there is some nefarious reason you can't stay in a job for more than 2 years.
It is also possible that one of your references isn't giving you a
good shining recommendation. Or that you've developed a bad reputation of some kind, even if it is not true.
It isn't usually considered appropriate to contact a hiring manager after the fact, but if you figure you have little to lose, then you can take the risk. Be advised that most hiring managers will not give you any useful feedback, but just tell you that someone more qualified was hired. And, as I mentioned, if you can find out who was hired, and compare your qualifications against theirs, then you may be able to figure it out.
Going forward, you might want to sent your application to HR, but to also send a CC copy to the hiring manager, if you know who he or she it.