The SLC-500 controllers are fairly simple in this regard; there are no restrictions on module order except for the CPU, which must occupy the left-most slot.
This is true for all 30 possible slots (if chassis are linked via backplane extension cables) of an SLC-500 system. There are restrictions on what kind of modules can be placed in chassis that are scanned by some sort of Remote I/O network, but that's outside the scope of this question.
The guiding rule for module mix in an SLC-500 chassis is, as Alan mentioned, the amount of power available in the chassis. Analog cards use up more power than discrete ones, and outputs more than inputs.
I typically group inputs first, outputs next, and analog cards last. This is strictly a habit; there's no reason to do so other than to segregate the voltages I have present in the cable trays underneath the cards.
PLC-5 users know well the tricks and rules of 1-slot, 2-slot, and 1/2-slot, or even Complementary addressing that the old 1771 system used. A headache at it's mildest, this is one of the reasons for the the simplified design of the SLC-500 backplane. Every module in the SLC chassis is addressed principally by it's physical location.
The SLC-500 Modular Controllers User Manual is close at hand on my desk:
http://www.ab.com/manuals/cp/1747-um011c-en-p.pdf