The reason is fairly simple, but probably not going to going to be as pattern based as you would hope.
お[水]{みず} is an example of a segment of Japanese known as [美化語]{びかご}, this is more or less means being more polite by using a nicer sounding word.
Some example of this are
[食]{た}べる instead of [食]{く}う
[美味]{おい}しい instead of [旨]{うま}い
お[昼]{ひる} instead of [昼]{ひる}
These words are all set, they don't really follow a set pattern other than many of them start with お.
The source of your confusion probably comes from the fact that お~ is also used a prefix to honor other people's things/actions. In the case of [美化語]{びかご} you aren't honoring anything directly.
So to get back to question of 氷 is written as just 氷 because there is no politer set alternative.