> On my computer running 24.5.1 M<up> works as expected. However, on emacs 22.214.171.124 I get ...
First of all, it is important to know in which major mode you are trying to use the M-<up>/<down> bindings. They are undefined by defined and are defined in org-mode-map.
It is also important to know in which minor/major mode maps you are binding those in your config. I would guess that the problem you see does not occur in an emacs -Q session?
It's also important to know that a key can be bound to different command in different minor/major mode maps and in global maps.
Here's the priority:
1. Minor mode map (last enabled minor mode)
2. Major mode map (e.g. org-mode-map)
3. Global map
So even if M-<up> is bound to org-metaup in org-mode-map, if foo-mode-map (some minor mode map) as that key bound to a function 'bar' and if foo-mode is enabled in an org-mode buffer, M-<up> will now call 'bar' instead of 'org-metaup'. So it is important to understand the consequences when making new bindings to minor mode maps (or understand the maps of the minor modes you enable).
> but emacs thinks that M-<up> is bound to scroll other window.
Emacs does not bind M-<up> by default to anything. So my guess is that somewhere in your config, you are binding that key to scroll other window. (I myself have been guilty of stepping over org-mode-map bindings in the past. Now I have learnt when to bind keys in global-map vs my own minor mode map which I use when I want my bindings to override everything else).