Чтобы наверняка понять и чувствовать эти выражения, лучше всего рассмотреть много примеров с их употреблением, так как простое объяснение не всегда полностью понятно.
<hr />
<h2>MUST</h2>
это слово обозначает, когда субъект должен, или даже вынужден что-то сделать по каким-то обстоятельствам (часто свыше), а не просто потому что кто-то другой так хочет. Например, потому что вам велит так сделать ваше воспитание, ваша честь, возникли обстоятельства, которым вы не можете противостоять. Или, как пример, человек должен что-то сделать, чтобы получить какой-то эффект, здесь тоже будет must.
- She must be examined by a doctor. - Её должен осмотреть врач. (потому что с ней что-то не так, и это по-другому не решить)
- To speak English fluently you must practice it. - Чтобы свободно говорить по-английски, тебе надо (=ты должен) его практиковать. (иначе этого не добиться)
- She's upset, you must talk to her. - Она расстроена, ты должен с ней поговорить. (тебе следует так сделать, чтобы успокоить её, чтобы наладить отношения и т.п.)
- I must confess I did it. - Я должна признаться, это сделала я. (потому что мне стыдно)
Также must часто употребляется, когда по-русски можно сказать "должно быть". Например:
- She must be at home now. - Она сейчас должна быть дома. (не потому что у неё домашний арест, а потому что я предполагаю это на основании того, что она всегда в это время дома, или потому что она мне сказала, что будет дома в это время.)
- You must know her, she works in your company. - Ты должен её знать, она работает в той же компании, что и ты. (я предполагаю, что если она работает с тобой, то, должно быть, ты с ней знаком. Но это не обязательно так).
- Where is Bill? - He must be walking his dog. - Где Билл? - Он, должно быть, гуляет со своей собакой.
Есть довольно распространённое выражение - MUST HAVE = "должен иметь". Это что-то такое, что должен иметь каждый. Не потому что тебя заставляют, а потому что это такая прикольная штука, без которой тебе не обойтись.
<hr />
<h2>HAVE TO</h2>
обозначает, что субъект должен что-то сделать обычно не потому что ему так велит совесть или обстоятельства, а кто-то другой.
- I have to finish my book it tomorrow. - Я должен закончить свою книгу завтра. (потому что позже у меня её уже не примут).
Have to употребляется в значении must в прошедшем и будущем времени, потому что must употребляется только в настоящем.
- To calm her down, I had to talk to her. - Чтобы успокоить, я должен был с неё поговорить.
<hr />
<h2>OUGHT</h2>
это глагол употребляется в значении "следует, следовало бы" в сочетании с инфинитивом, часто звучит как совет.
- She ought to help her sister. - Она должна помочь своей сестре (ей следовало бы помочь ей, это как совет).
- You ought to be more careful - Ты должен быть аккуратнее (тебе следует быть аккуратнее).
Если must здесь звучало бы больше как что-то неизбежное, то есть тебе по-любому надо так сделать, выбора нет то ought это больше как совет.
Ought может употребляться ещё и с Perfect Infinitive, что кому-то что-то следовало бы сделать, но он не сделал, это как порицание, типа "тебе следовало так сделать, а ты не сделал, айайай".
- You ought to have visited her yesterday. - Тебе следовало навестить её вчера.
- = You should have visited her yesterday.
В данном случае ought синонимично should.