Click on the Version 9.1.3 (or whatever is latest in the 9.1.x series) download button for your version of Windows.

Click "Save" (or whatever you browser supports)

Navigate to where the installation file (named something like postgresql-9.1.3-1-windows.exe) is located and double-click on it to launch the installer.

Set-up Details

Click "Next" through the first few Setup wizard steps.

On the "Password" screen, type "osm". Note: PostgreSQL has its own users and superusers, which are separate and distinct from Windows users and administrators. As a default, PostgreSQL installation sets up both a PostgreSQL superuser named "postgres" and a Windows system user account named "postgres" that will use the same password. Confused yet? Who's on first?

Click "Next" through the rest of the Setup wizard steps, leaving all values as their defaults.

The last step of the Setup wizard should ask if you want to launch something called "Stack Builder." If you are online, you do! If you are offline, you will want to use the standalone installer identified above to install PostGIS.

Make sure that the check box is checked.

Click "Finish", which both finishes PostgreSQL installation and launches the Stack Builder.

On the first page of the "Stack Builder 3.1.0" window, in the drop down, select "PostgreSQL on port 5432"

Click "Next"

On the next page, click on the "+" sign next to "Spatial Extensions"

Check the box next to "PostGIS 2.0 for PostgreSQL 9.1 v2.0.0

Click "Next" until presented with the "PostGIS 2.0.0" setup window.

PostGIS Install Details

Start the installer through the Stack Builder or the standalone installer.

Click "I Agree"

Click "Next" until you get to the "Database Connection" window

In the "Password" field, type "osm"

Click "Next"

On the "Database Name" window, in the "Database Name:" field, type "osm" (TODO: is this right?)

Click "Install"

Click "Yes" to the "Would you like us to register the GDAL_DATA environment variable (see Appendix C), click "Yes"

Click "Close" on the "Installation Complete" window.

If you're in the Stack Builder, click "Finish." If using the standalone installer, you won't need this step.

Troubleshooting

If you encounter an error when creating the database involving other connections or users, right click on the other databases in pgAdmin and select disconnect.

Verify PostgreSQL and PostGIS installation success:

Find the "pgAdmin III" application in your Start menu.

This should bring up an administrative window, with an "Object Browser" on the left side of the window.

In the Object browser, double click on the icon with the red "X" labeled "PostgreSQL (localhost:5432)"

Enter your password, "osm"

The red "X" should disappear and a set of items should be listed below the "PostgresSQL" label.

Click on the "+" sign next to the "Databases" icon

There should be an icon with a red X labeled "postgis" or something like "template_postgis" (databases created by postgis install)

Click on the "+" sign next to the "postgis" icon

There should be an icon labeled "Extensions"

Click on the "+" sign next to the "Extensions" icon

If you see the items "postgis" and "postgis_topology" listed under the extensions, congrats! PostGIS 2.0 is installed.

Troubleshooting

If on Windows Vista or Windows 7, and your local account is not an administrator, you may need to give the "postgres" user administration privileges
Otherwise you will may see errors about "permission denied" when trying to start the server.

Windows 7: Start > Control Panel > User Accounts

Manage another account, Pick Postgres

Change Account Type, make administrator

Go back to User Accounts view

Change User Account Control Settings

Lower the UAV settings to the lowest setting

Restart your machine, login as your normal user

Now the PostgreSQL server should be automatically running

Now you may need to restart your machine to trigger the PostgreSQL Server to restart.

If you get an error about access denied, then go back and repeat the above user account steps