Read the message by Frank outlining the reasons PID files are left to "protect" the user. Unfortunately this protection presumes a level of competance in the user that is not present in many MS Windows users. The point-and-click fraternity will consider the program "broken" if it fails to start.
As a partial solution perhaps the postmaster can raise a dialog, perhaps in a separate process, if a PID file exists? Two different options: Postmaster checks "process identification number" to see if it refers to a live process and then (1) If live tell the operator two postmasters can not run on the same computer or (2) indicate that the postmaster was not correctly shut down , data errors may exist and to run ...
Such a response indicates clearly to the user that they were at fault, the program is not broken and if they want to run postgreSQL trouble free they should shut the computer down in an orderly fashion.
Not all users have access to a tech-savy resource person and postgreSQL is such an excellent piece of software if would be a shame if people were put off using it simply because the program "does the right thing".
In my own case I have built tests/messages in the application software that achieves a simular result and I am comfortable that ensuring postmaster runs on demand is nolonger an issue for my users or myself as a first call for support.
best regards
Richard Sydney-Smith