良い質問です。まず、butには歴史的にいろいろな側面があり、「品詞は決めにくい」と理解しましょう。そもそも英語の品詞は、近代になってから便宜的、人為的に言われ出したものです。英語は、その後付けの品詞という狭い枠の中で、発達してきたわけではありません。伸び伸びと発達してきたのです。「~を除いて」のbutは「前置詞だ」と決めきれない、と考えましょう。
次です。この「~することを除いて」のbutの前に「助動詞かdo/does/did」があると、普通toは省略される、という文法があります。このルールのために、cannot help but do(このhelpは避ける、という意味です。~することを除いて避けれない→~せずにはいられない)、do nothing but doとなります。
一方、have no choice but to doやthere is nothing for it but to doは、前に
「助動詞かdo/does/did」がありませんので、toが残されています。で、なぜtoが残されているか、考えてみました。おそらく、このtoの役目は、その前のbutは「しかし」のbutではありませんよ、と読み手に教える働きをしている、よって省略されない、と私は考えています。
「助動詞かdo/does/did」があると、but以降にも「助動詞かdo/does/did」がかかり、butが「~を除いて」のbutであることは、断然分かりやすくなるのです。よって、toは不要になり、省略された、と考えます。
最後に、「~を除いて」のbutと「しかし」のbutの関係を説明します。歴史的には「~を除いて」のbutが先にありました。そして、「~を除いて」のbutから「~しかし」のbutが生まれました。
I ate nothing [but [some breadヲノゾイテ]] for breakfast.
「朝食に、少しのパンを除いて、何も食べなかった」
時代が進みますと、butの前で区切ろうとする心理が働き始めます。
→I ate nothing, butガ some milk for breakfast.
「朝食には何も食べなかった。が、少しのミルクは除いてね」
このように、「~を除いて」のbutを、その前で区切る心理が働いているうちに、やがてこのbutが、「が、しかし」という意味へと変質してしまうのです。
→I ate nothing, butガ....some milk for breakfast.
「朝食には僕は何も食べなかったけど、が、しかし少々のミルクは別さ」
さらに→I ate nothing, butガシカシ I drank some milk.
「何も食べなかったがしかし、少しミルクは飲んだ」
とうとう、「~を除いて」のbutが、「が、しかし~はした」というような意味でも用いられるようになりました。このように、「が、しかし」のbutは、「~を除いて」のbutに由来することがわかります。
以上、少しでも参考になれば幸いです。