Managers are useful for stuff like controlling GUI or displaying GUI all at once, or perhaps managing the inventory of a character or somesuch. The idea is that it is one Object that you know you can refer to for specific information or to send messages to that are related to the topic that it manages.
The idea of using a specific object to store variables that are shared among a lot of objects is a nice one too, you would basically just make an empty object much like a manager and it would contain all of the pertinent variables that you need to share between objects but didnt want the trouble of actually getting those objects to communicate to each other. Or small database sort of things, basically. Store the variables in the "DB" manager/fsm and when something happens and you know what the data is you can fetch it from your little mini-db. GoogleFu basically does this, but its in a very clean way. You could certainly roll your own system like that.
Templates are immensely useful in design.
This video talks about some practical ways to use them but the overall idea is to design black box type systems that are driven by inputs that you feed down when some event occurs. Thats what Run FSM does, runs a template. It's very powerful, and yet has minimal feature support in its current state. The other way templates are great is that they work like prefabs do, basically. You can create a generic "Health" template and put it on any character in the game, then all of your attacks, spells, weapons, powers, etc all can be directed to a "Health" FSM which is always guaranteed to be the same template as any other character.
You could derive further by having the Health template fetch variables from yet another Generic "Stats" template which you would modify per-character, or even have them pull that data from a DB at runtime based on their Name... Very powerful. I've used this extensively lately and it allows rapid scaling of the game if you set it up right. It feels like auto-magic when you do it properly. Just *click* add the templates to the new enemy, then define its data in your database and *poof*, works like a charm at runtime.
Thats just a few ideas. Hope it helps.