ASP.NET MVC maps URLs according to url-pattern rules defined in its routing. Only if a routing rule doesn't exist to match a given URL, MVC will assume that the requested url is for a physical file (and only if that feature is enabled also).
That said, unless you have a routing pattern (or a route, if you will) that matches "home/index.aspx", then there is no handler defined to work with that URL, and the MVC will fall back into assuming that a physical file is requested. Since there is no physical file at that path, it returns 404 - really, that file doesn't exist: I know that you do have it, but it's at a different location (/views/home/index.aspx).
However, even if you do request a correct path (e.g. "/views/home/index.aspx"), you'll still get a 404, because there is a web.config file in "views" folder with a rule that forbids accessing all files that way (they can only be accessed from within controllers, basically).
So, if you need to transfer the request to another controller/action, then there are a couple of ways to do that. See if these threads will help you:
How to simulate Server.Transfer in ASP.NET MVC?
How do I use Server.Transfer method in asp.net MVC?
Oh, and if "some_condition" is purely URL path matching, then you should probably do that at routing level.