Sharepoint is like a shelf that is too short.....
You have all these books to put on a shelf and as you put one on at one end another one falls off at the other. You just can't get them all on at the same time.
What do I mean by this?
Sharepoint has many features and with these come limitations due to the way features have been implemented. I am repeatedly finding that to use feature A means that you cannot use all of feature B. Historic choices can have a huge impact on what can be done in the future.
A classic example is the choice for AD or Forms authentication. Many WebParts rely on one form of authentication or the other. Few will work with both; and using AD authentication as a back-end to Forms authentication (via LDAP) just raised new issues on top of the existing ones.
This means some careful planning and pilot studies need to be done early in any Sharepoint project to make sure that set of features you want to use are compatible with each other and you are not painting yourself into a corner for the future.