Can someone explain fragmentation? Would someone be able to explain android fragmentation?

If I created an app using 1.5 will that app work on all devices that have version 1.5 - 3.2 (highest current version)?  Or are there issues between the versions?  I understand 3.0 is the tablet version so an app made for 1.5 probably won't look good, but will it work without having to create specific version targeted versions of the app?

Also, why does it take so long for some phones to get updates?  Is Android so tied to specific device hardware that upgrading it is not possible without other device specific modifications?  I would have expected that if a phone is able to run a new version it would get it OTA, but reading around it seems a lot of android users complain that it's taking so long to get x update or that they don't even know if they will get it.
From logical point of view if you create an app with SDK 1.5 it should run on devices with OS version 1.5 and higher. But reality is a bit different.

The same application that works on Samsung device with 1.5 may not work on HTC with the same os version and vice versa. Also there is no 100% guarantee that it will work on other devices with newer OS versions.

Why?

There is no strict standard on hardware/software implementation among all Android manufacturers. Every manufacturer makes his own device and makes his own version of Android OS for the device which complies to the relevant SDK version, but has some additions/differences.

And these differences lead to the fragmentation.