Your Ego software library is in one of two places. Either it’s in a local—probably user home directory—or in your regular Perl library @INC path. Either one is fine.
/root /default /blurb /body /form /fragment /head /meta /page /static /css /screen /img /…various… /widget /wrapper /install /manual (the pages you’re reading right now)
Do not edit files inside any directory except the one you specify in your $ENV{EGO_CUSTOM}. To change the default behavior in your site, edit a file in $ENV{EGO_CUSTOM}/… that corresponds to a file in /default.
For example, if something offends your sensibilities about the file /root/default/head/xhtml_1_0_trans_utf8 and you want to change it. You could change it, of course—it’s your file system—but you should not.
You could also create a new one, my_much_better_header, and edit any file that uses xhtml_1_0_trans_utf8 to use your new file. But you should not.
Instead, you should create a new xhtml_1_0_trans_utf8 in the $ENV{EGO_CUSTOM}/head/ dir and it will take precendence over the default. This has a couple advantages.
You will always have your default, baseline templates. So no matter how badly you mess up your own custom templates, fixing your site is as easy as erasing the new files. It also means that as Ego is upgraded or bugs are fixed, the default files can be patched and updated. That simply isn’t possible in templates that have been edited extensivel.
# do NOT edit this
/root/default/head/xhtml_1_0_trans_utf8
# instead, edit this:
$ENV{EGO_CUSTOM}/head/xhtml_1_0_trans_utf8