Since manufacturers are struggling to publish updates for their products, the only way out is to go to specialized forums such as xda-developers.com. There is a download and a guide to get Android 2.2 "Froyo" running on the HTC Magic - the official Android version for this device is 1.6.Currently it's an alpha version in which only the basic functions are usable (Wlan, GPS, speakers and camera are still without function), but the first step is already done.
There are a few more problems (e.g. the browser crashes when you install the Flash 10.1 beta), but the developers are confident that they can get everything up and running. Obviously, the manufacturers' reasons for not updating older devices (e.g. due to weak hardware) are only pretended.