My company has been using ClickOnce for over three years, and we have thousands of customers installing multiple products (both desktop and Office add-ins), with very little trouble. We do have a signed certificate, because all of our customers are external, and it assures them that the installation is coming from a trusted source.
Also, the problem with changing the signing certificate was fixed in .NET 3.5 if using automatic updates and a desktop application (not for VSTO), and is fixed in all cases in .NET 4. And there are workarounds for the cases where it is still a problem.
The huge advantage of ClickOnce is the ability to publish updates and have the users pick them up automatically, and the fact that the updates are incremental. THis is especially important if your application accesses a database, and you need to make sure the user updates the application when you deploy changes to your database.
If you have a ClickOnce app and are having errors at startup, you need to try running the [exe] from the ClickOnce cache and determine if the problem is in your application or with the deployment.
I'm not sure what you mean by having ClickOnce download from the server and saving files locally. If you mean the deployment itself, it does that. If you mean can it download files from somewhere else and save them locally, sure it can. Our application uses the WebClient to both upload and download files.
Note that ClickOnce app do not install for all users, and you can not write to Program Files. If you are using additional files, you need to stuff them in LocalApplicationData. Our application creates a cache under the LAD folder and retains information there, and that works fine for us.