congratulate 人 on… で  「...のことでだれだれを祝う」となります。 このonは「~に関して」という関連を表す前置詞ですが、特別な日に用いられるonと考えるとわかりやすいと思います。We congratulated him on the birth of his son. (私たちは彼の息子の誕生を祝った)この文の場合、息子の誕生日は特別な日なのでonになるわけです。さらに特別な出来事を祝う場合にも使われます。たとえば、I must congratulate you on your plan for the new building. (新しいビルの設計おめでとう)といった風に。ところで、congratulateの後に必ず人が来るという構造は I kissed her on the cheek(彼女の頬にキスした)と似ています。まず「彼女」と全体を述べたあとに、キスした場所(部分)を言う形と同じだからです。この成句も「全体ー部分」という大きな括りで捉えればいいと思います。なお、名詞形のcongratulationsの場合もonを伴いますが、誰に対して祝っているのか、さらにその人がどんなことをしたので祝っているのかをはっきりさせる必要があります。Congratulations on your winning the speech contest.この場合、your winning...によって、あなたがスピーチコンテストで優勝したことがはっきりわかります。