Travis, you are right there is a really simple, but completely not-obvious step you are missing. You need to select the linestring(s) that you want to use for boundary, go to the properties and set the "surface sharpness" property to "Sharp and texture boundaries." That will limit the site improvement to that line. If you are still seeing it flood out of the boundary, first go all around the boundary line and make sure it is continuous with no gaps or overlaps. You can also go to Project Settings -> Computations -> Takeoff and set the Gap closure tolerance to a value that makes sense for your project. This will let the software skip over small gaps in your boundary up to the length you specify. Likewise, if that value is too large it may start joining adjacent boundaries that you didn't want joined.
Cheers,