Here's a quick solution that I heard (and liked)...each time your non-spellcasting variant class would have gained spells of a new level -- they get a bonus feat instead. this meanst, of course that, through 20 levels bards get 6 o4 7 additional feats, while paladins and rangers get 4.
The campaign that I heard that used had bards, rangers etc pulling feats from the general list...I'd be inclined to create a thematic list of feats (social feats for bards, survival feats for rangers) to keep these bonus feats linked with the other class features.
On the balance -- this fix might be a little underpowered (4 bonus feats in place of a list of spells?), but not all that much so. It could be 'powered up' by adding a list of 'class only' feats that can be taken at these levels (similar to a rogues's 'special abilities') -- the Complete Warrior style powers could be added there, as well.
On the plus side -- it enhanced flexibility...for which the lack thereof is a recurring complaint for rangers & bards as is.