I don't mean to sound overly critical but any test in which 90% of the takers fail is probably the fault of the test creator. It could be because you are asking questions outside the scope of knowledge of a normal programmer, in which case you are probably looking for a specialized and advanced skill set (which requires you to pay more and search deeper through the talent pool). Another possibility is that you are not asking questions that reflect the job description or requirements. If you put out a job listing for a web developer, but ask them questions about C, you should expect every one of them to fail. (Likewise, if you are hiring C developers and ask them questions about JavaScript scope, they will do poorly.) In short, you might need to either adjust your expectations or bring your test more in line with the job description.
Side note: I've taken several of these coding tests, and I hate them. They are time consuming and, frankly, a little disrespectful. The company wants me to take time out of my busy day to complete a test with no input or investment from the company, instead of a 1-1 interview in which both the interviewer and the candidate invest time. There have been several instances where I've completed these tests and never even gotten a response. I view that as incredibly disrespectful (I'm not saying you do this but it seems to be a problem with some companies). Now when a company asks me to do a test, I don't respond. I would rather not risk wasting my time, and would prefer to work for a company that is willing to invest resources into their potential employees.
Just my two cents.