I worked in a team where we struggled with the same problem. What weWe found was that the less time we had before integrating, the less difficult it became. I know most people teaching continuous integration talk about committing every few minutes - we probably actually committed every hour or so.
We also found that just building wasn't enough. We needed a good test coverage level in order to make sure that we didn't accidentally break each others' code.