could just be a crappy earth... mine suffered with this and its free to fix:
disconnect the battery, disconnect the cables going to the starter, clean up the terminal and the connector with some WD40 and something abrasive (like a file) and refit. should be 10 times better.