Yes, you are doing one thing wrong - overreacting..
1) Have you installed the service as described in the Openfire: Installation Guide ? have you started it? Is it showing the state Running after you refresh the Services window? If so, then try going to http://localhost:9090 in the browser on the server itself. If it opens the Admin Console, then the service is running normally.
2) If you are running the service, then you shouldn't run into problems (of course, you shouldn't run the launcher at all). But you might also want to install Openfire into C:\Openfire instead of Program files.
Openfire was designed in XP era and it is also a cross platform application, so it was easier to keep all the config files and embedded database in the same folder. When UAC was introduced in Vista it created a problem. But there are a few workarounds i have described above and this is mentioned in the installation guide. IgniteRealtime is limited in human resources (it's a volunteers driven community) so not every thing can be changed/improved quickly.
So after I calmed down a bit I figured out what I did wrong.
Backing up a bit, the reason I'm installing Openfire on a Windows server is because "apparently" it is impossible to get SSO working from anything except Windows... So I was already pissed off...
Replicating what I had in my Ubuntu environment, I installed MySQL on the same box, but having never installed MySQL on a windows box before I mistakenly called the instance Openfire without realising that this would also be the name of the Windows Service. So when I installed Openfire and had it create a service, it replaced the MySQL service which resulted in all kinds of hijinx...
So in the end, after I un/reinstalled MySQL I was able to run Openfire on the server as a service without permissions issues.