Ironic that the ad I see at the bottom of the page for this thread is a run where you can crawl through the mud for $60 (non-competitive) or $80 (competitive). That pretty much says it all.
Anyway, a big thing I don't like about it is young people just getting started or just coming out of college (i.e. broke) just can't afford it. So the races have become middle age middle/middle-upper class events for the semi-serious. Our sport is losing the new blood and the best, most competitive runners.
One solution: Put on a local race yourself. I started one 20 years ago and runners have really come to appreciate and enjoy it. Pick a date...make up a flyer and make a bunch of copies...find a local park with a trail or bike path and borrow a wheel to carefully measure out a course as accurately as you can...mark it with cones or whatever or have friends/family direct people if need be (just sending people around a loop is easiest)...hand out popsicle sticks at the end and have people write down their name/age and time as they hear you read it off when they cross the finish line...collect the popsicle sticks, and you're good with results.
For the price of what I would pay for a single race elsewhere, I put on this race an maybe even buy a few bananas/apples/bagels, and/or get a few local establishments kick in a gift certificate or two. Keep it SIMPLE.
I don't charge anything, but I'm sure if you even just charged $5 or whatever to defray your costs, people would appreciate it. Heck, if 25 people around an area each did one race, you could have races like this every other weekend.
Just an idea that has worked for me and a few others in our area. Give it a try...