Why the change in tones of the words in some phrases? I am a native Cantonese speaker. I found that we have to change the tones of some words, when used in particular phrases. But I don't know why. It seems that it doesn't follow any "rules of changing tone" like those in Mandarin.

An example is 蘭, which is pronounced as "lan4". But in 荷蘭(Holland), it's pronounced as "lan1". And similarly for 欄 in 果欄, 士 in 的士. 

Can anyone give some more examples and explain why?

Edit: Another example, 鞋 usually pronounced as "hai4". But in 拖鞋 it is pronounced as "hai2". However, in 皮鞋, it becomes "hai4" again.

Edit: Another example, 壺 usually pronounced as "wu4". But "wu2" in 水壺，茶壺 etc. Yet "wu4" again when you say 一壺茶.

Edit: 下 ha6, but ha2 in 鄉下．
粵語的聲調變化分成連續變調與變音 (morpho-phonemic change)。主要發生在複詞或疊字詞，一般來讀低音域（主要是低降調）的第二音節會轉為高昇調。  

1) 連續變調：不發生語意或文法上的改變:  


家人稱呼，如：爸爸（baa4 baa1）、媽媽（maa4 maa1）、弟弟（dai4 dai2）、太太（taai3 taai2）

2) 變音：會發生語意或文法上的改變: 


i) AAB型疊字詞，如：立立亂（laap6 laap2 lyun6，雜亂的)
  ii)名詞作為容器量詞使用時保持原來的聲調，如：一盒朱古力（jat1 hap3 zyu1 gu1 lik1，一盒巧克力）vs 呢個盒（ni1 go3 hap2，這個盒子）

It seems like what you mentioned is explained in the last example.

Here's the origin:
http://zh.wikipedia.org/wiki/%E7%B2%A4%E8%AF%AD