Ought to si usa per dire che è una buona idea fare una cosa. Corrisponde in italiano al condizionale del verbo 'dover'. You ought to upgrade your computer.
Esso è spesso utilizzato per opinioni su questioni legali o obblighi, d'altra parte should è usato per opinioni personali. Esempio: You ought to call the police. Had better: Had better si usa per dare consigli e corrisponde all'italiano faresti/farebbe/fareste meglio a.
Meno frequente di should, ought è sempre seguito da un verbo all'infinito con to, tranne alla forma interrogativa, in cui non è necessario aggiungere to: You ought not (to) ask so many questions. Non dovresti fare tante domande.
Had better è sempre seguito da un verbo all'infinito senza 'to': You had better BE on time. Sarà meglio che tu arrivi in orario. Had better si forma SEMPRE con l'ausiliare 'have' al past simple ('has better' o 'will have better' non esistono!).
Il verbo modale “Should” viene utilizzato per dare e chiedere consigli o esprimere supposizioni. Molto spesso infatti si usa “should” insieme al verbo “think”: “I think you should eat better if you want to improve your health.”