It may not be a faulty fan. It could be the fans temperature switch or even the engines thermostat.
Check the fan out by unplugging it and supplying it directly with 12 volts. If it works (which I bet it does) replace the switch and the thermostat as they are both fairly cheap.
Vince
October 2010