Perhaps setup fees /kinda/ make sense if you are some high-quality name in the business and people will know they are staying long-term. But if I see a well-known company without setup fees and your company with a setup fee it won't take long to decide.
What you mentioned is far more decent: a bonus for payment in advance but I don't see how they expect to charge me the equivalent of 3 months in advance just to test them out.
Really, it's less about margin, though, and more about credit. If I had more, it wouldn't really matter... but I don't, so it does.
for a while I was renting out whole servers at nearly co-lo rates... with the catch that the customer needed to pay a setup fee that would cover the parts cost of the server up front.
It was pretty popular, actually; I only stopped doing it because it put me in a bad place as a provider... thing of it is, sometimes you really do need to fire your customers. I don't want to be in a position, though, where I get a bonus for firing my customers.
Personally, I address this by having pre-payment discounts. cover your account for a year and I knock off 20% (and usually use the cash to go buy a new server) - I also allow people to sign up and pay monthly (at a higher rate, of course) but with my current price /discount setup, the majority of my income is from pre-paid customers.