If the Rules module doesn't have a predefined action that allows deleting a user, then you can choose the action that executes the code necessary to find the users that didn't log in the past 90 days, and deletes them.
You can create a rule that is executed when Cron maintenance tasks are performed (that is one of the events you can select when creating a rule), and add an "Execute custom PHP code" action.
$query = db_query_range("SELECT uid FROM {users} WHERE access < %d", time() - 7776000, 0, 20);
while ($uid = db_result($query)) {
user_delete(array(), $uid);
}
return array();
The result would be something similar to the following one:

The return
statement is probably not necessary, but as I understand, the Rules module is expecting the code returns an array containing something that needs to be saved; the code could return a node that needs to be saved, for example, and which will be saved if the node has been modified.
The 7776000 value I used is the number of seconds in 90 days.
This is the solution I would adopt if you are already using the Rules module. If you are going to install it just to be able to accomplish this task, then it would be better to use a custom module that implements hook_cron()
, or using a module that already does the task.
Which one to choose depends from what you plan to do with the module you are going to install; if you are using few of the module's features, then a custom module is probably a better solution.