The -900 is longer than the -800 (that was rather obvious), but they're both limited to 189 passengers, because they both have the same emergency exit configuration (which, like the range-issue, is something that Boeing is addressing with the -900X). The main idea behind this was giving operators of two-class-configurations (or very comfortable one-class-configurations) a plane in which they can transport more people.
The -900s range is lower which, as far as I know, is a result of it's higher weight because of the longer fuselage.
As far as sales go - I guess that a lot of airlines just don't need the extra capacity in their B737 fleet... and in the case of charter-airlines or other high-density-configurations - with the plane limited to the same passenger number as the -800, the -900, with it's higher operating cost, just doesn't make sense.
Smile - it confuses people!