What do you envision the ultimate role of the Soviets being, McMonkey?
Seeing as how the Western Allies are the only playable civ, I think what you want the Soviets to do is either advance, hold, or lose based on how the Western Allies do.
Is making Soviet gains/losses dependent on Allied ones completely fair or realistic? Probably not (you could argue it was the opposite in fact), but I do think it's the mechanic you need for this game to give the Allied player what they signed up for.
I think the goal should be to find a balance where not too many cities change hands one way or another at first, but if the Allies do well, the Soviets start to do well, and if the Allies do poorly, the Soviets start to be hammered. Or, to simplify, you could ignore that and simply not allow the Soviets to go anywhere if the Allies don't.
A very simple solution for this (if you don't have event space/desire to add more flags) would be to have indestructable, non-disbandable German units in certain cities in Russia, but with home cities elsewhere in the world (Tunis, Messina, Rome, Caen, Aachen, etc., the choice is yours). You could also use flags to accomplish the same thing, but it would be more complex.
I'm just not sure you really want to let an AI "ally" spoil the game one way or another (either by losing it, or by doing what it is currently doing - killing Germany relatively quickly), and I certainly think you're setting yourself up for some major headaches trying to get the perfect balance only by adjusting how many units are built/given.
YMMV