Does this break normalization?
There are different levels of normalization.  If your business logic is set up where each contact has an associated account (but more than one contact can be in an account), then there is no reason to put the account ID in the order table because you can get it by going back to the contact table.  In other words, account ID in the contact table is a foreign key.