Sometimes i see a question being voted down because it used a poor programming approach: something like disabling error reporting or using globals, my doubt is: should a question asked using a bad programming practice be down voted?
If the "bad programming practice" is what is proximately causing the confusion leading to the question, there seems to be no recognition - or worse, denial - of this fact, and the fact seems plainly obvious. Absolutely
If it is tangentially related, but an extremely bad practice that is going to cause related trouble? Maybe
If it's just bad, but not directly related? Ehh.
But ultimately, someone's reason for voting is their own.
I've seen some cases of this -- since we're free to vote for whatever reasons (or no reasons at all) I'm sure we'll always see this.
I usually leave a comment asking people to vote on the merits of the question, not on the merits of the ideas in the question, and, if the question was well-asked, I'll give it an up-vote myself.
Since down-votes hurt so little and up-votes help so much, it doesn't take many up-votes to more than negate the effects of some down-votes that appear to have been cast for "the wrong reasons". (Don't feel like you have to correct someone else's "mistaken down vote" -- vote up if you feel like the post is worth voting up.)
Be as forceful (yet polite) as you can in an answer or comment addressing why the practice is wrong. You'll get more up-votes yourself if you propose a better replacement.