I have set up my machine with one IP alias interface (eth0:0). The to adresses are assigned correctly. But if I establish an outgoing connection the originating address is not the primary IP assigned to eth0, but the alias IP assigned to eth0:0. If I run "ifdown eth0" and afterwards "ifup eth0" everything works fine and the right IP address is used for outgoing connections.
That is done by the kernel; it's not an initscripts problem.
David Miller reports: The selection of source address for outgoing packets through primary or aliased interfaces is basically arbitrary. Those who absolutely require a specific source address need to use the "ip" program to tell the kernel the preferred source address for outgoing routes through those interfaces.