Основное отличие «had better» от «should» в английском языке заключается в том, что had better употребляется в конкретной ситуации, подразумевая, что если не последовать совету, будут негативные последствия в виде проблемы или даже опасности. 1 В то время как should употребляется, когда даётся общий совет, и если не последовать ему, негативных последствий, скорее всего, не будет. 1
Также had better относится к непосредственному будущему, выражает определённое и более срочное действие, в то время как should может использоваться и для самых общих ситуаций. 2
Ещё одно отличие в том, что should может использоваться для выражения как положительных, так и отрицательных рекомендаций, в то время как had better обычно используется для отрицательных рекомендаций. 4