This macro will put every mount function into a single button.
First choose a macro name and icon... use the red ? icon, as it will change to show the different mounts
#showtooltip
/cast [nomounted,flyable,nomodifier:SHIFT] Azure Netherwing Drake
/cast [nomounted,flyable,modifier:SHIFT][noflyable] Red Skeletal Warhorse
/dismount
Change the bold mount names to reflect your flying and land mounts. You can also change the SHIFT button command to another button such as ALT.
How the macro works:
#showtooltip at the beginning of any macro is there to allow the mouse over spell text you get from all your normal spells, this is optional
As for the rest of the macro, if you are in a land mount only zone it will display your land mount (except Dalaran) if you're in a flying zone it will display your flying mount. If you are in a flying zone and it is displaying your flying mount yet you want to use your land mount you hold down the SHIFT key and it switches to display your land mount. Lastly if you are mounted and you click this same button it will dismount you.