"Have to" и "must" - не одно и то же! Они всего лишь немного похожи по смыслу.
Модальный глагол из них - только "must".
"Have to" не является заменителем "must".
Они оба могут переводиться на русский язык как "должен", но при переводе с русского на английский, а также при более точном переводе с английского на русский часто допускаются серьезные смысловые ошибки.
В некоторых случаях они могут частично заменять друг друга. Например: "Уже поздно, я должен идти, мне пора идти". Можно сказать и "I must go", и "I have to go". Только смысл будет отличаться. "I must go" - я чувствую, что мне уже пора, я сам имею желание и внутреннее личное ощущение, что пора домой, я устал, голодный, хочу спать, мне скучно, надоело и т.д. "I have to go" - означает "Я бы еще остался, но у меня много дел, обязательств, поэтому мне уже пора, я должен, вынужден уйти".
"Have to" означает:
- обязан
- вынужден
- имею обязательство
- меня вынудили (внешние силы, другие люди)
- должен
- не имею права не сделать.
Его синонимами являются "have got to" и "bound to".
"Must" тоже переводится как "должен", "обязан", но имеет совершенно другую окраску. Это сильно выраженная внутренняя потребность, жгучая необходимость самого человека что-то сделать.
Я должен его затмить! - I must outshine him!
Я обязан сдать этот экзамен, иначе сам себя уважать не смогу! - I must pass this exam, otherwise I just won't be able to respect myself!
Еще "must" используется в качестве предположений, что совершенно невозможно в случае с "have to". Например: It must rain soon. - Должно быть, скоро пойдет дождь.
Если взять отрицательные предложения с данными глаголами, смысл будет совершенно разный. Например:
You don't have to do it = ты не обязан это делать. Хочешь - делай, не хочешь - не делай, никто тебе ничего не скажет. Сам решай, снаружи никто и ничто не давит и не заставляет.
You mustn't do it. = Не смей этого делать ни при каких обстоятельствах! Это категорически запрещено и невозможно.
Если вы не уверены, что выбрать, в большинстве случаев лучше использовать "have to", а не "must". Меньше риска исказить смысл предложения.
У глагола "must" нет прошедшего и будущего времени. Поэтому, в качестве исключения, чтобы описать личное ощущение долженствования в прошлом или будущем, допускается заменить его на "had to" или "will have to".
На низких уровнях английского языка, включая Intermediate, с натяжкой могут зачесть, что это аналоги. Поскольку многие другие серьезные темы английского языка еще не освоены, учителя долго закрывают глаза на такие ошибки, предпочитая объяснять их попозже. На уровнях Upper-Intermediate, Advanced и Proficiency это уже считается грубейшей ошибкой, полностью искажающей смысл предложения. Такие ответы просто не зачтут. Это, кстати, одна из любимейших тем как раз на продвинутых уровнях языка. Там принципиально будут вопросы, где выбор будет как раз между "Have to" и "must", и правильный ответ будет только один.