Every accounting department (that is, every company big enough to have an accounting department) I've ever worked with wanted a contract number on my invoice. If you're not in the system, you aren't getting paid. And you're doing well to get net 30, let alone upfront. I don't think this would fly with my individual clients either.
Interesting thought, though. I've always considered the first few hours as part of the cost of sales. At some point you just stop and say, "we need a contact". Until then, it's marketing. Not saying that's the only or best way to do it, but it seems to be the usual way.