This is a hack, but you can add a virtual attribute to the model class, which simply acts as a flag to indicate whether the callback should work or not. Then the action of the controller can set the flag. Sort of:
class User < ActiveRecord::Base
before_create :validate_email, :unless => :skip_validation
attr_accessor :skip_validation
def validate_email
...
end
end
class FriendsController < ApplicationController
def create
@user = User.find
@user.skip_validation = true
@user.save
end
end
, before_create callback :unless . , , skip_validation.