It's a fact of life.
IP addresses are a scarce resource, so companies are not going to hand them out to people who aren't expected to be running servers from their connection. Instead they have a pool of them that they hand out to people on demand.
If you need a static IP you need to ask your ISP nicely and provide a rationale - like, you need to run a web/mail/dns server from your connection.
You may find, however, that this is against the terms of service of some ISPs, and if it isn't, they may still be unwilling to give a static IP.