I first tried Eagle, found it hard to use... then I downloaded a bunch of other programs recommended here on the Lab, but I always return to Eagle.
If I stop using Eagle for a few months, it takes some time getting used to it again... but once I'm in the middle of a project, it's easier.
For the incomplete component libraries, if the component I want isn't in the library, I pick one that is "close enough"... for example, transistors... I just use a different value and just make sure the pin outs are the same (EBC, or whatever). Same thing with capacitors... I go to Digikey, get the lead spacing of the caps, and pick a cap in the library with the same lead spacing and diameter (or close enough).
I don't know everything in Eagle yet, (haven't tried creating my own component yet) but what I know is enough to produce a correct PCB. I just use the Image Export to create PCBs at home.