AFAIK there is no single solution for stopping all spywares. I have seen people use multiple anti-spywares to keep them protected.
But the best solution for me is to have a virtual machine or a sand box environment to tryout suspect files (and suspect sites). Unless a user executes a exe or some script from the web himself, there is no way to get injected with a spyware. You can even do off with all these anti-virus and spywares if you use the system to visit only legit sites and use legit softwares