Miles - your comment interested me but I would like to expand to see if what I am thinking is aligned to your comment (I want to be sure I am taking your statement correctly). In the five or so years since I first touched this thread, I have been blessed with the opportunity to see the inside and help out several companies. Over that time I have become more and more convinced that it is not "buy or build" but "buy and build".
The current company I am at (I have moved from contractor to 'corner office') has been going through a lot of pain as they bought a whole ERP solution customized some within the parameters of its capabilities and even extended it somewhat but issues like maintenance and advancement were becoming more and more impossible. Further, if they had followed the tenants of this ('ERP') system it would have cost them dearly as the inflexibility of the system would have cost them greatly in sales and more than a few customers. (It is a ETO manufacturing enterprise). They followed good process when selecting the system (in 1998) but time and technology had eroded the value to the "should we just shut it off" point a couple of years ago.
Instead of doing that I took one highly talented developer and we focused on the middle ground (I believe this is now refered as EES?). We took the functions that didn't work and created an interface to the portion of the information source that was reliable, connected it to other systems and essentially packaged them as 'servers'. This lead to the creation of a dashboard-ish user interface that is now able to react to changes of use and environment without an interruption of service. This approach was validated when we upgraded the payroll and HR packages and completely replaced a section of the ERP application with a new system. There was practically zero loss in business or productivity time and we implemented the roll over in the middle of the work day. We are continuing to follow these guides with increasing success.
By focusing on building a fabric that lies between the major systems and creating what custom pseudo-APIs we are able to keep upgrades to major systems very 'vanilla' and avoid down time and most importantly we have helped to improve productivity and throughput.
Sorry for the overly long response but as someone who lived on the "Buy" side of the fence I now see more of the ways and how I was wrong.