While pathfinding can be a major hassle, in this case it's fairly trivial. All it really requires is for the pathfinding algorithm to look two moves ahead, and if it is going to move to a space that it can reach in one move, then it should move there, instead. This should both address normal corners in corridors, but if there's an item in that corner, it should actually move to the item itself, since the pathfinding algorithm would have stopped there, anyway.
And since it's going to have to do the extra step, anyway, it is really just performing the check one step earlier.