First things first, yes, Android and webOS do the same thing… but on the implementations I’ve seen, you get an option upon first run, and are forced to choose between enabling location (and therefore opting in) or disabling location.
Disable location, and you don’t have to agree to that.
It looks like iOS 4 changes all of that, by requiring that you agree to Apple sharing your location data with third parties upon install. Apparently, there is an opt-out option at http://oo.apple.com (visit on an iOS 4 device if you wish to opt out,) but you’re still agreeing to the terms. Which are…
To provide location-based services on Apple products, Apple and our partners and licensees may collect, use, and share precise location data, including the real-time geographic location of your Apple computer or device. This location data is collected anonymously in a form that does not personally identify you and is used by Apple and our partners and licensees to provide and improve location-based products and services. For example, we may share geographic location with application providers when you opt in to their location services.
I don’t have a problem with companies using the data. On the webOS device that I had for a week, and on the Android builds I’ve run on my HTC Touch Pro, I’ve opted in. It was clearly presented, in a separate screen from all other setup processes, and gave me my options. (As I understand, Apple’s location sharing is buried within a EULA. Agree to the EULA, and you automatically agree to that.)
I have a problem with companies requiring you to agree to them using the data, even if there is an opt-out option later on.