This is one thing the Palm Pre got right. When you first turn on your phone, it asks if you'd like to always allow location info, or if you'd like the phone to ask each time. If you say no, any app (even the pre-installed ones) must ask every time it wants to get your current location. If you say yes, it gets out of your way and doesn't bug you unless you change it in the settings.
Of course, if you say yes, it also periodically sends data behind the scenes. Strange, but it's better than making this completely uncontrollable.