Слово «должен» не является глаголом или причастием. Во-первых, у него нет инфинитива, настоящего, прошедшего и будущего времени, а, самое главное, оно не означает действие. «Должен» выражает только намерение, обязанность. Так какая же это часть речи?
Принято считать, что слово «должен» - это краткое прилагательное, которое образовано от полного прилагательного «должный». Хотя данное полное прилагательное имеет совершенно другое значение – подобающий, определенный, надлежащий. Например, должный порядок, должное замечание и т.д.
Возможно, «должен» просто не имеет полной формы, как указано у А. Зализняка. Например, есть ряд кратких прилагательных, у которых отсутствует полная форма: рад, горазд и т.д.
В Большом толковом словаре русского языка под ред. С. А. Кузнецов. 1998 «должен» помечено как наречие. Хотя наречие – это неизменяемая часть речи, а «должен» изменяется по родам (должен, должна, должно) и по числам (должны). Также отвечает на вопрос каков?
Путаница отнесения «должен» к наречию, наверное, возникает из-за его среднего рода. Например, здесь должно быть здание. По форме оно похоже на наречие, но, по сути, оно выражает намерение, а не качество действия, поэтому наречием быть не может.
Также «должен» обычно является составной часть сказуемого, поэтому его иногда путают с глаголом. Но глагол подразумевает действие, а «должен» - нет.