とりあえずの対処として、a:hoverのスタイル指定を無効にしました。これでずれなくなったものの本来はもっと左に寄っているべきなのに寄っていないので、あとでまた調べてみる予定です。
WindowsだとWM_IME_COMPOSITIONでlParamにGCS_RESULTSTRを含むときにDefWindowProcに処理させると、WM_IME_CHARが送られ、さらにこれをDefWindowProcに処理させると、WM_CHARが送られるようになっています。
ところがWindows CEだとWM_IME_CHARは送られず、直接WM_CHARが送られるようです。CEはUNICODEだけなので確かにマルチバイト文字であっても一回のWM_CHARで送れるのですが、WindowsでUNICODE版を作っても(RegisterClassWでウィンドウクラスを登録しても)ちゃんとWM_IME_CHARを送ってくるのですから、動作を合わせて欲しいもんです。
というわけで、メッセージ作成時に日本語で入力するとダブって入力されるなんていうお間抜けなバグが報告されたりするわけです^^;。もっとも、WM_IME_COMPOSITIONを処理しているにもかかわらずDefWindowProcを呼び出していたのがそもそもの問題なので余り責められないのですが。
ちなみに、なんでこんなでかいバグに気づかなかったかというと、私のjornada 720は英語版なので日本語はKANJIINで入れるからなのでした(言い訳)。