Yeah, the app has to support it. It's a whole extra line of code (!) that has to be added to the app so you can see why many apps havent implemented it.
Having said that, some types of apps arent suitable for installing on the SDcard - this includes things like widgets, live wallpapers, alternate keyboards etc, since moving them out to the SD card can actually slow the performance of the whole phone down.
But if it's a game or a normal app then there really is no excuse apart from developer incompetence and/or laziness.