I agree, I think you've found a bug. But I believe what sliderhouserules meant was UrlEncode it before you pass it as an argument, like this:
Url.Action(new { action = "Tag", controller = "Story", name = HttpUtility.UrlEncode(tagItem.Name), page = 1 })
Or
Url.Action(new { action = "Tag", controller = "Story", name = Server.UrlEncode(tagItem.Name), page = 1 })
Using HttpUtility.UrlEncode is a security best practice according to msdn to protect against cross-site scripting attacks, but I haven't seen it used much so I don't know how well it actually works. And even the MVC framework uses both interchangeably, but since I've started using it I haven't had any problems.