Thunderstorm triggering button press?
You aren't crazy. I had a similar thing happen when an external hot-water system turned on at midnight (someone was having a shower) and one of my systems detected input unexpectedly (and rang a bell right next to my ear while I was trying to sleep). 

My solution was to have something like this:



The diodes clamp the input to acceptable ranges, and R1 is a current limit for the diodes. R2 and C1 are a filter that slows down the incoming signal (and thus eliminates sudden spikes). R3 is a pull-up resistor. In my case I had active-low. If you have active-high you could use a pull-down resistor instead.

Also see https://arduino.stackexchange.com/a/13128/10794

Further reference material:


10 Ways to Destroy An Arduino
Protection
Microcontroller Input Protection Techniques