How about this:
You have an AddressID field for both Company and User. You also have a flag field on the User to indicate that their address is linked to the Company address. Then, your business logic can take care of the rest. If the flag is set, anytime the company address changes, the user address will change with it. If it is not set, then a duplicate address should be stored to keep any changes in the company addresss independent of changes in the User address.
This would also allow your User to add supplemental information (department, cubicle/office #) to the Company address when they are being created to make things more relevant from the beginning.