I asked earlier if I needed to construct the widgets myself or if the civvies build and ship it, and the answer I believe I got was, that the civvies take care of everything.
They do - that's why I said "DO NOTHING" above.
is the ability to advertise contracts to get the civies to move this player-owned stuff.
The tricky part is that infrastructure is special - it can either be a trade good or player-owned. If you make it in a factory, then it's player-owned from the start and civie lines won't pick it up as a trade good. The infrastructure in the "available for export" field, however, is a trade good that's created magically by the civie sector, and will be picked up as such. Once it's dropped on a planet, then it becomes player-owned, and civies won't treat it as a trade good any more. By putting out a contract to pick up 150 infrastructure at Earth, you were actually saying "pick up 150 player-owned infrastructure at Earth". But since you hadn't built any, you didn't have it to pick up.
From what you've said, I'd just SM in 150 infrastructure on Earth - that will probably make the cargo ship happy and it'll go on its way.
So whats this safety margin for infrastructure for planets?
If Mars has a population of 2,000,000, and has a colonization cost of such that it requires 1000 infrastructure to support that 2,000,000 pop (this is almost certainly not the right number - I made it up), then the civilian economy (the wealth/trade) tab will still show a shortfall in infrastructure until there's enough to support slightly more (e.g. 10%) than the current population. So assuming fixed population, Mars would still show up as a sink of infrastructure on the trade tab until e.g. the infrastructure was at 1100. I just made up the word safety margin - it's not something you need to worry about in terms of game mechanics.
John
PS - Since the contract stuff is so new, there are likely to be bugs. You've hit one of them: "The civie sector should be able to handle the situation where there aren't enough goods present to fill up a 'supply' contract". I'd say you should post this on the bugs thread.