Is there a way to have GNU screen automatically open a number of screens the first time it starts a new session?

Yes, you can put this into your screenrc, eg.

screen -t Code 0
screen -t Chat 1 irssi
screen -t Shell 2
screen -t Remote 3 ssh user@host
screen -t screen4 4

You can put the commands in a text file, and then specify that text file as your screenrc, screen will still inherit the entries from the system screenrc file in /etc. The text file might look like:

zombie qr
screen -t sshToServer1 ssh Server1
screen -t logTail tail -f /var/log/foo

The Syntax is:

screen -t title <optional window number> command commandArguments

The zombie qr will make it so if you close that window, you can resurrect it by pressing r. To specify the above text file:

screen -c textfile

If you want to name the screen session, and have reattach the name if there is already a detached session with the same name instead of starting a new one, use -R:

screen -R myScreenSession -c textfile

This way, you can save several different text files for different screen sessions.