What Jackel said. Be very careful with .utc editing. You can use tk102's findrefs to verify if the file is unique:
http://www.starwarsknights.com/tools)
If the .utc is not unique, then your best bet is scripts.
In KotOR 1 you can apply a disguise:
void main()
{
//check nwscript.nss for the possible disguise effects (DISGUISE_TYPE_*)
ApplyEffectToObject(DURATION_TYPE_PERMANENT,DISGUI SE_TYPE_*, GetObjectByTag("my_npc_tag"));
}
In Kotor 2, you can use the ChangeObjectAppearance function:
void main()
{
//Replace int Appearance by the appearance.2da row number.
ChangeObjectAppearance(GetObjectByTag("my_npc_tag"), int nAppearance );
}
The duplicate head appearance function can also be useful depending on what you want to do (just avoid putting Vrook's head on Mission's body!):
DuplicateHeadAppearance(object oidCreatureToChange, object oidCreatureToMatch);
However, I don't know if this function is available in KotOR 1. You can verify this by checking nwscript.nss.