If you're diagramming the high level workings of digital circuits then you could use the "Circuits and Logic" template under Engineering templates (Visio 2007). If you need more shapes you can import the libraries from the other templates (just I can't remember how). This way you can import any of the more general or more complex shapes you need.
After you have all the shapes you need in a drawing you can save it as a template. You can also look into building your own shapes but that's something that can get really complicated.
Only thing to watch for are shapes that have code embedded in them. For example you might notice that some text boxes will automatically resize to fit the text you enter. This is all programmed in (and can be edited with some know how). But using these shapes for purposes other than intended can be a headache because inevitably you will want to change an aspect controlled by code.