I think the better way for that is not to assign different template because you will have to load many more images and css.
The best way is to modify a bit the top of you index.php.
For example for Jomla 1.0 , if in the top of the index.php you see:
You replace that by:
if( $_REQUEST['option'] == "com_smf" ) {
$color=orange;
}
elseif( $_REQUEST['option'] == "com_frontpage" ) {
$color=green;
}
else{
$color=blue;
}
That will loads orange style on the forum, green style on the frontpage and blue for all the others pages.
You can also use different requested variables like Itemid ...
I hope it helps
PS: It will be nice if you edit your first message to change the title to "How to assign different styles/colors to differents parts of a site ?"
It think it will be more clear
