Why not do a seeding system for cup games? The top 32 or so teams and the final 8 or 16 cup teams from the previous year could be seeded. Then they always play at home against unseeded teams until there are no unseeded teams left. The rest of the cup tournament could stay the same (ie: home advantage is random when unseeded or seeded teams play against each other).
This would accomplish two things:
1) The best teams have a little bit of an advantage, which I think is only fair. It also reduces the chance that bot teams make it far in the cup.
2) Seeded teams never play away against a bot team, unless the team just recently went bot. Actually, I would always make bots the away team in the cup. Have you seen their crappy arenas?
Maybe this is just my bias against bot teams since one knocked me out of the cup last season. ;-)
Run of the Mill Canadian Manager