Hmm, what can I add about Eagle? It's a great program but not without pitfalls.
1. Stick with a regular grid. If you EVER place a component on something different, like a 0.333 grid, you will probably never be able to fix it since there is no SNAP TO GRID function.
2. Sometimes components and wires do not attach, although they look like they did. Pick up a component and move it around to see if the wires are tied to it.
3. Put ALL your custom components in a new lib, my_components. It is phenomenally difficult to add/move components between libs. If you add a new component or pkg to a lib that is part of the distribution, you won't have it in a new install. You could copy your old lib, but miss out on any updates that might be in the new distrib.
4. I found that for heavy use, you want to copy the few caps, resistors, etc you actually use and have on hand to my_components. Why? Well, for one, you don't confuse them with the other 100 close pkgs in the lib. But moreover, you will probably have a few caps you want to make your own pkg for. If they're in the same lib, you can just CHANGE->PKG when you want to change your mind about which cap to use. If they're not, you have to delete the old component, add a new one, and wire it all over again.
I would have made my_resistors, m_caps, etc but for example they both may use a 0805 SMD pkg. So to avoid repeating yourself they need to be in the same lib.
5. Pkg names and values SUCK if your board density is high. Eagle does NOT allow you to delete them (bug?). They reappear! I had to resort to just deactivating the tnames and tvalues layers, whereas many of them I would have liked to keep.