I'm not sure about Text, but both the bytestring and vector packages provide functions like unsafeIndex. The closest equivalent to that in base would be (!!), which indexes on a list. If you give it an invalid index, it will throw an exception from pure code (a.k.a., it's a partial function). That kind of exception can cause problems if you don't expect it, but in the nearest IO code, you can still catch that exception and let your program continue operating.
unsafeIndex, on the other hand, performs a memory access which may not just throw an exception, but could actually cause your program to segfault. There would be no way to recover from that, unlike partial functions.
I think that's what Antoine is implying, please correct me if I'm mistaken :).