RE: what causes bad range check
Although I still perform the simple 100ft range checks that are described in my radios' manuals, I no longer solely rely on them. With the aircraft at home, on the driveway, and a helper, I perform a peak test - walking as far as I can until the aircraft starts to 'glitch.' Most times, this distance is at least twice the 100ft distance that I use at the field.
If the 100ft test were the only test I performed, I could lose 50% of the possible range before the 100ft test would detect the deterioration. That's quite a bit to lose before detecting a problem!
I perform the peak test 3-4 times during the flying season, depending on how much flying I'm getting in.
Peak range will vary depending on all the factors noted by others here - battery condition, ant. position relative to servos, ant. condition - plus other things such as covering materials (metallic vs. non-metallic) - so find the peak for each aircraft, don't assume that all your aircraft will have the same peak range.
Also, as an instructor, I instruct my students to do their range checks the exact same way every time. Test method inconsistencies make it difficult to interpret/compare test results.