Let me first say that Eagle is an excellent design tool and very reasonably priced. I applaud you for multiplatform support. Microsoft does not rule the world! 
First:
One of the things I've found eternally frustrating about Eagle is trying to use common shared libraries with other engineers. It would be nice if the necessary hooks were added to eagle to support shared libraries in a safe way.
The scenario I've encountered (in more than one office) is when you have multiple engineers who may be creating/editing parts in an Eagle library. If the engineers use a shared drive to share libraries you then have a situation where the last person to write to a library could overwrite changes made by someone else.
Our workaround has been to have each engineer maintain their own library private lirary and if you need to use a part that someone else has already created, you get a copy of that engineer's library and copy the part into your own library. Not to mention the hassle factor in doing that, but now you've got the same part in multiple libraries and if you discover a problem with a part or make a change to a part you have to make sure everybody knows about the change and updates their libraries accordingly.
This isn't an easy problem, I know. There are many things to consider, such as, the scenario where a change made to a library part for a new design may cause problems in an old design. This might be mitigated to some degree with a dialog box that notes changes when an "update library" command is performed and allows you to update or skip particular parts.
Ideally, with a shared library, editing would create a lock at the device/symbol/package level, not the entire library level. This would allow multiple users to simultatieously create/edit different parts within the same library. If someone tries to edit a device/symbol/package that is being edited by someone else, they would be refused.
One solution might be a SQL-type server (mySQL, SQLite, etc.) for shared libraries.
Second:
A pad editor would be nice for creating custom pad shapes. I've had a few occasions where I needed an irregularly shaped pad, or an SMT pad with a via embedded in it to transfer heat. Placing a via on an SMT pad throws a DRC error, which is annoying.
Third:
A feature I've found very helpful in Cadence is design rules enforcement during manual routing. Basically, when hand routing traces Cadence enforces minimum spacing rules (e.g. when routing a trace and you get within the minimum spacing the trace being routed is deflected by the interfering trace/copper/pin/via/etc (it can optionally 'shove' the offending feature out of the way)). It is almost like a single trace, guided, on-the-fly auto routing. The router tries to follow where you're clicking with the cursor, but obeys spacing rules and tries to route around DRC conflicts. Very nice feature. Maybe the feature would come with th epurchase of the autorouter module.
Just some feedback for your development staff. Kudos! Keep up the great work!
Thanks,
Dave L.
