I've only ever used project variables in the past, but today was considering having variables that are used across projects. But there are only "user" variables and no "project" variables. That means that potentially, if someone else were to try and run a project one day (no one else uses FB here atm), the build could break. Not a good thing.
Was the decision to only have project and user variables, and not global variables, a conscious one, perhaps for licensing? What are user variables really intended for?
Incidentally, now that I think about it, user variables would have solved a different problem I had recently: per-machine settings. Since the same project has to run on my development machine and on the build machine (with FBS), I use an .ini file on the network with settings that depend on the machine it's running on. But I could have just used user variables, since they're stored on the machine, and since my username on the two machines is the same (though I'm not sure if that's critical).
It would perhaps be clearer to have specific "Machine" variables?
Also, still thinking about global variables, I guess you would need to nominate a place on the network where every machine would be able to access them, if you wanted variables that were truly global across all projects, all machines and all users. Which is pretty much what I'm doing atm with .ini files, except that I have to actually declare the variables beforehand. A "Declare variable if not already defined" option in "Load variables from INI" might help?
Sorry for that very rambly post!
Steve