Чаще всего - в случаях, когда кто-то что-то должен сделать, или ему приходится. В остальном - это синоним must.
То есть must более "жесткий", что ли. Кроме того, have to может использоваться в любых формах, в том числе - в прошедшем времени.
Также, отрицание с глаголами имеет разный смысл:
must not - запрещено, don't have to - нет необходимости