The method described in BOL of manually scripting tables and exporting/importing data using BCP is the better method as this will allow you to ensure that the user databases are using the same collation as the server default.
Why is this a concern? Well there are several reasons but a good example is the use of temp tables. Temp tables are stored in a system database named tempdb the collection method used for tempdb is the server default, if this is different to the user database then attempts to join character based data between tables in your database and temp tables will generate collaction errors.
The detach and re-attach method will allow you to bring your user database back online when you have re-built the system databases, however, you will still need to make changes to ensure the database collection is the same as the server collaction if this is your desired end result.