A related point is that if say $X\subset Y$ and you want an embedded resolution of $X$, then you can of course ask that you want a birational morphism $\pi:Z\to Y$ such that the strict transform of $X$ is smooth, but a better thing to ask is the the entire pre-image of $X$ is as nice as possible. Unfortunately (in general) you cannot make the preimage of $X$ smooth as the exceptional set will add additional components and where they meet is going to be a singular point. So, you can ask for the next best thing: normal crossings. You could even say that *normal crossings* is the reducible analogue of *smooth*. 

Anyway, this is the result of Hironaka, JS Milne referred to above: for any $X\subset Y$ (plus some reasonable assumptions) there exists a projective birational $\pi$ such that $Z$ is smooth and $\pi^{-1}X$ is a normal crossing divisor. If $Y\setminus X$ is smooth, then you may even require that $\pi$ is an isomorphism outside $X$.

The compactification result is a simple consequence of this: if $U$ is open (say quasi-projective), pick a projective compactification $Y$ and let $X=Y\setminus U$. Perform Hironaka's embedded resolution of singularities and you get $U\subset Z$ with the complement being a normal crossing divisor.

----------------

One, slightly independent word on *normal crossings*. There seems to be some confusion in the literature about what *normal crossings* mean. Or rather what the difference is between *normal crossings* and *simple normal crossings*. Well, the point is that (nowadays) the latter is understood in the Zariski topology while the former in the analytic or formal topology. In other words, *simple normal crossings* mean that each irreducible component is smooth and they meet transversally, while *normal crossings* allows for a component to meet itself transversally. In particular, a nodal curve has *normal crossings* but not *simple normal crossings*. 

In the above discussion and in the other answers before this one, you can always put *simple normal crossings* in place of *normal crossings* and the statements remain true. It is possible that back when Hironaka proved his famous theorem, this distinction had not been made so in older texts the meaning might be different. At the same time, according to Miles Reid, it was the Japanese who invented the term *simple normal crossings*.