It appears that there is a better option in version 8; use that if you have it. For older versions:
I was bothered by having Mathematica start with a blank notebook open. I could close this notebook with a script, but it would still flash open briefly. My hack is to create a file Invisible.nb containing:
Notebook[{},Visible->False]
And add this to my Kernel\init.m :
If[Length[Notebooks["Invisible*"]] > 0,
NotebookClose[Notebooks["Invisible*"][[1]]]
]
SetOptions[$FrontEnd,
Options[$FrontEnd, NotebooksMenu] /.
HoldPattern["Invisible.nb" -> {__}] :> Sequence[]
]
This closes the invisible Notebook after Mathematica starts. Normally it would not be a problem, but this is "good housekeeping" and there are some packages or tools that I have seen that rely on Notebooks[]. Furthermore, if Invisible.nb somehow got focus and something was pasted into it that would be confusing.
I now start Mathematica by opening Invisible.nb