おぉ、それです!
…と言おうとしたんですが、結構動作が違いますね。

track-eol を元にでいろいろ探したんですが、
ttp://infoshako.sk.tsukuba.ac.jp/ShakoDoc/Editors/NEmacs/EmacsGuideInJ_html/chap0850.html
によると

>○カーソルを行末に追随させたい
> 目標桁が設定されていない場合、C-n/C-pによるカーソル移動は、
>桁位置を固定して上下に移動する。ところが、移動先の行のテキストが
>その桁位置よりも短い場合、カーソルは一時的に行末に移動する。
>次の行がその桁位置よりも長ければ、元通り桁位置を保存してカーソル移動をする。

となっています。これが私の望んでいる動作なので、やはりemacsの
バージョンか環境によってはこちらが普通、ということなんでしょうか。
私が困ってる環境は Windows7上の GNU Emacs 23.2.94.1(i386-mingw-nt5.1.2600)
というものです。何が違うのかなぁ…。