I am not exactly sure what you are saying is an issue. I would recommend against using default.pl for pets, because of how default.pl works.
As you mentioned, default.pl loads from the current zone folder before it tries loading from templates. I am not sure how you had one that worked in quests/ directly. Nothing should be loaded directly from quests/. If you want a globally used default.pl (or any other) file, it should be in quests/templates/.
I don't run a default.pl in templates, because it is much better to be used from zone folders. I also don't use default.pl for pets, because it is MUCH better to just make individual scripts for each pet and keep those in the templates folder. Basically, you look at the spell and find the name that the spell uses to load that pet, and make a file named for that. Some examples are skel_pet_72_.pl or SumAirR17.pl and so on. It does make it a bit of a pain to manage if you want a lot of pets to use scripts, but it still works better than using default.pl for it.
I use the default.pl for scripts of trash NPCs and anything that might be used by multiple NPCs. To prevent any unscripted pets or temp pets from using the default.pl for the zone, I add the following at the top of every event in the default.pl:
Code:
# Prevent pets or charmed NPCs from loading the default.pl
if (!$npc || $npc->GetOwnerID() || $npc->GetSwarmOwner())
{
return;
}