From the Forbes article:
All four telecom firms also offer so-called tower dumps that allow police to see the numbers of every user accessing a certain cell tower over a certain time at an hourly rate. AT&T charges $75 per tower per hour, with a minimum of two hours. Verizon charges between $30 and $60 per hour for each cell tower. T-Mobile demands $150 per cell tower per hour, and Sprint charges $50 per tower, seemingly without an hourly rate.
For location data, the carrier firms offer automated tools that let police track suspects in real time. Sprint charges $30 per month per target to use its L-Site program for location tracking. AT&Ts E911 tool costs $100 to activate and then $25 a day. T-Mobile charges a much pricier $100 per day.
When service fees have extreme variance (example: $30/month to $100/day), it's hard to believe they are based on a realistic cost model. If they are, I would expect them to be considerably more consistent. Since they aren't, it leads me to believe they are pulling prices from you know where and charging whatever they want.
Excessive profit is not congruent with free enterprise/capitalism so this has nothing to do with an organization's "right" to charge whatever it wants. Arguably, law enforcement experiences monopolistic behavior with no recourse since they must deal with the target's carrier and pay whatever they demand. They cannot ask Sprint to provide data on a T-Mobile customer thereby creating a competitive situation.
I was impressed that the article mentioned Verizon did not charge a fee for emergencies. This is definitely an example of them being a good corporate citizen. However, I would not fault them if they did charge a reasonable
fee, even in an emergency.