With the (hopefully) eminent release of the cupcake update for the android os - this is supposed to be fixed with the addition of Settings.Secure; though I guess we won’t know until it gets released?
Anyway — basically you can modify system values in a specific database, so any program that calls Settings.System.Android_ID can be given any id of your choosing.
Just load up adb and navigate to the sqlite database: /data/data/com.android.providers.settings/databases/settings.db
Run the query;
select * from system;
You’ll see plenty of information which can then be changed;
Running the following;
update system set value=’dead00beef’ where name=’android_id’;
Would give you an ultra-slick android_id of dead00beef’ :)
Note that this will NOT change the android id used by google products since they use one that is linked to your gmail account that the phone is associated with…

Monday, 27. April 2009
what is this ID used for?
Thursday, 30. April 2009
@Elad
The android_ID is often used to identify the device to applications.