We use the SES program. It is an excellent program, but as you say it is not cheap. I don't think there is a good cheap program.
You could do a simplified analysis on a spreadsheet or math program like MathCad, based on the calculations given in IEEE std 80, Guide For Safety In AC Substation Grounding. To adequately handle complex grid layouts or multi-layer soils, however, you would need to write a very complex program. A couple places to start would be:
F. Dawalibi, D. Mukhedkar, "Optimum design of substation grounding in two layer earth structure", Part I, II, & III, IEEE Transactions, Vol. PAS -94, No. 2, Mar/Apr 1975, pp. 252-272.
F. Dawalibi, D. Mukhedkar, "Multi-step analysis of interconnected grounding electrodes", IEEE Ttransactions, Vol. PAS -95, No. 1, Jan./Feb. 1976, pp. 113-119.
If you did attempt such a complex program, it should be tested extensively and verified before using it for a safety-lated application such as grounding design.