Question: I have a collection of servers that will each have their own tasks. web server, billing server, game servers. Each of which will need to either send customer facing email, or simply send it's system mail to a single address so it's easier to manage.

i have a mail server setup to receive all the incoming mail, using postfix, dovecot etc.

I understand that I'll need postfix on each of these servers, but will they all need to have a full setup including dns spf records etc, or should they all use the mail server as a remote smtp server and have all outbound mail from this one box?

Answer: 
1. Not sure why you say: "I understand that I'll need postfix on each of these servers". Unless your various applications require it (which would be strange) to send out anything, you could have one server with Postfix and all of your other server just get configured that their SMTP server is your server running Postfix.
2. However, there is one reason why you may want Postfix on every server. That is for failsafe reasons. Say ServerA runs Postfix and ServerB is your web server. ServerB wants to send out an email message and tries to do so via ServerA but ServerA is down. Now what happens? The user gets an error? If you have a local Postfix on each servers, then the mail is accepted and because ServerA is down, it gets deferred and retried.
3. Overall, I would recommend that only one of those server is configured to send emails out so you only have to configure one email server with SPF, email routing, etc. If you implement point #2 above (if you have a good reason to implement it), then your web server, etc, simply need a line in Postfix to make every email simply relay through your 1 Postfix server. If you don't have a Postfix server on each machine, then your web application, etc, get configured with your Postfix server as SMTP.
4. Finally, there is one more point of advice. If you are sending mail for various applications, and if they are very dissimilar, you may want to have each send out emails from its own IP address. That is to prevent one server which may generate a lot of traffic for example, get flagged as spam and now all your emails get flagged as spam. It is good practice for example, to send out bulk email, correspondence email and transactional emails (order confirmation, etc) through different gateway (IP addresses) so as to not twart your chances of reaching the inbox. (Many documents on this at Return Path for example).

So the correct implementation really depends on your exact need, volume, type of application. But this should give good guidelines for people.
I'd recommend configuring all servers as satellite servers which send their mail to the central postfix. This has some advantages:

* Easier to maintain as you only need to configure one mail gateway with SPF, spam prevention, mail routings etc. All other nodes just send their mail to the gateway node.
* Incoming mail only needs to be handled by one server (as far as your satellite nodes don't need to process incoming mail).