How to handle multiple types of accounts?

How to handle multiple types of accounts?

I need to keep track of about 5 different types of accounts.

Each type of account needs a slightly different page layout. 

My current understanding is that a Page Layout is based on the User, not the type of data the record is?

It would save a lot of time if I could assign a page layout based upon a field in the account record.

Example.

Account where account_type ==== "blue", gets the "blue" page layout.
Account where account_type ==== "red", gets the "red" page layout.

If this does not work, is my next best option to create a custom module for each account type? This just seems so unnecessary with all the repeated information. For example, all 5 types of accounts will have shipping and billing addresses. They just need different views as they handle slightly different data.