I had a similar problem recently. It turned out to be the ground connection on the block. I suggest checking the connections at the block and the starter; disconnect 'em, clean up the terminals, and put 'em back on. oh, and don't forget about the small wire that connects the starter relay to the solenoid; make sure it's not corroded or anything.
just some ideas.
Joe
Edit: just to rule out the starter relay, you could swap it with the horn or fog light relay and see if that does anything.